| 123456789101112131415161718192021222324252627282930313233343536 | package coretype Capability byteconst (	TCPConnection = Capability(0x01)	UDPConnection = Capability(0x02))type Capabilities interface {	HasCapability(cap Capability) bool	AddCapability(cap Capability)}type listCapabilities struct {	data []Capability}func NewCapabilities() Capabilities {	return &listCapabilities{		data: make([]Capability, 0, 16),	}}func (c *listCapabilities) HasCapability(cap Capability) bool {	for _, v := range c.data {		if v == cap {			return true		}	}	return false}func (c *listCapabilities) AddCapability(cap Capability) {	c.data = append(c.data, cap)}
 |