code: func (ps *PeerSet) TryAdd(p peer.ID) bool {
  	var success bool
  	ps.lk.Lock()
  	if _, ok := ps.ps[p]; !ok && (len(ps.ps) < ps.size || ps.size == -1) {
  		success = true
  		ps.ps[p] = struct{}{}
  	}
  	ps.lk.Unlock()
  	return success
  }
docs: // TryAdd Attempts to add the given peer into the set.
  // This operation can fail for one of two reasons:
  // 1) The given peer is already in the set
  // 2) The number of peers in the set is equal to size