package agent import "slices" // AddPeer adds a peer agent by name. func (ag *Agent) AddPeer(name string) { ag.peerMu.Lock() if ag.peers == nil { ag.peers = make(map[string]struct{}) } ag.peers[name] = struct{}{} ag.peerMu.Unlock() } // RemovePeer removes a peer agent by name. func (ag *Agent) RemovePeer(name string) { ag.peerMu.Lock() delete(ag.peers, name) ag.peerMu.Unlock() } // Peers returns the sorted list of peer agent names. func (ag *Agent) Peers() []string { ag.peerMu.RLock() defer ag.peerMu.RUnlock() out := make([]string, 0, len(ag.peers)) for name := range ag.peers { out = append(out, name) } slices.Sort(out) return out }