package netmap import ( "iter" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/netmap" ) // Node is a named type of netmap.NodeInfo which provides interface needed // in the current repository. Node is expected to be used everywhere instead // of direct usage of netmap.NodeInfo, so it represents a type mediator. type Node netmap.NodeInfo // PublicKey returns public key bound to the storage node. // // Return value MUST NOT be mutated, make a copy first. func (x Node) PublicKey() []byte { return (netmap.NodeInfo)(x).PublicKey() } // Addresses returns an iterator over all announced network addresses. func (x Node) Addresses() iter.Seq[string] { return (netmap.NodeInfo)(x).NetworkEndpoints() } // IterateAddresses iterates over all announced network addresses // and passes them into f. Handler MUST NOT be nil. // Deprecated: use [Node.Addresses] instead. func (x Node) IterateAddresses(f func(string) bool) { for s := range (netmap.NodeInfo)(x).NetworkEndpoints() { if f(s) { return } } } // NumberOfAddresses returns number of announced network addresses. func (x Node) NumberOfAddresses() int { return (netmap.NodeInfo)(x).NumberOfNetworkEndpoints() } // ExternalAddresses returns external addresses of a node. func (x Node) ExternalAddresses() []string { return (netmap.NodeInfo)(x).ExternalAddresses() } // Nodes is a named type of []netmap.NodeInfo which provides interface needed // in the current repository. Nodes is expected to be used everywhere instead // of direct usage of []netmap.NodeInfo, so it represents a type mediator. type Nodes []netmap.NodeInfo