func Get(addr resolver.Address) []string
Get returns the hierarchical path of addr.
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 Set(addr resolver.Address, path []string) resolver.Address
Set overrides the hierarchical path in addr with path.