package node import ( "net/netip" "sync/atomic" ) type peer struct { IP byte Addr *netip.AddrPort // If we have direct connection, otherwise use mediator. SharedKey []byte } type peerRepo [256]*atomic.Pointer[peer] func newPeerRepo() peerRepo { pr := peerRepo{} for i := range pr { pr[i] = &atomic.Pointer[peer]{} } return pr } func (pr peerRepo) Get(ip byte) *peer { return pr[ip].Load() } func (pr *peerRepo) Set(ip byte, p *peer) { pr[ip].Store(p) }