package hierarchy

import "google.golang.org/grpc/internal/hierarchy"

Package hierarchy contains functions to set and get hierarchy string from addresses.

This package is experimental.

Index

Functions

func FromEndpoint

func FromEndpoint(endpoint resolver.Endpoint) []string

FromEndpoint returns the hierarchical path of endpoint.

func Get

func Get(addr resolver.Address) []string

Get returns the hierarchical path of addr.

func Group

func Group(addrs []resolver.Address) map[string][]resolver.Address

Group splits a slice of addresses into groups based on the first hierarchy path. The first hierarchy path will be removed from the result.

Input: [

{addr0, path: [p0, wt0]}
{addr1, path: [p0, wt1]}
{addr2, path: [p1, wt2]}
{addr3, path: [p1, wt3]}

]

Addresses will be split into p0/p1, and the p0/p1 will be removed from the path.

Output:

{
  p0: [
    {addr0, path: [wt0]},
    {addr1, path: [wt1]},
  ],
  p1: [
    {addr2, path: [wt2]},
    {addr3, path: [wt3]},
  ],
}

If hierarchical path is not set, or has no path in it, the address is dropped.

func GroupEndpoints

func GroupEndpoints(endpoints []resolver.Endpoint) map[string][]resolver.Endpoint

GroupEndpoints splits a slice of endpoints into groups based on the first hierarchy path. The first hierarchy path will be removed from the result.

Input: [

{endpoint0, path: [p0, wt0]}
{endpoint1, path: [p0, wt1]}
{endpoint2, path: [p1, wt2]}
{endpoint3, path: [p1, wt3]}

]

Endpoints will be split into p0/p1, and the p0/p1 will be removed from the path.

Output:

{
  p0: [
    {endpoint0, path: [wt0]},
    {endpoint1, path: [wt1]},
  ],
  p1: [
    {endpoint2, path: [wt2]},
    {endpoint3, path: [wt3]},
  ],
}

If hierarchical path is not set, or has no path in it, the endpoint is dropped.

func Set

func Set(addr resolver.Address, path []string) resolver.Address

Set overrides the hierarchical path in addr with path.

func SetInEndpoint

func SetInEndpoint(endpoint resolver.Endpoint, path []string) resolver.Endpoint

SetInEndpoint overrides the hierarchical path in endpoint with path.

Source Files

hierarchy.go

Version
v1.70.0 (latest)
Published
Jan 23, 2025
Platform
linux/amd64
Imports
1 packages
Last checked
20 hours ago

Tools for package owners.