|  | @@ -0,0 +1,36 @@
 | 
	
		
			
				|  |  | +package core
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +type Capability byte
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const (
 | 
	
		
			
				|  |  | +	TCPConnection = Capability(0x01)
 | 
	
		
			
				|  |  | +	UDPConnection = Capability(0x02)
 | 
	
		
			
				|  |  | +)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +type Capabilities interface {
 | 
	
		
			
				|  |  | +	HasCapability(cap Capability) bool
 | 
	
		
			
				|  |  | +	AddCapability(cap Capability)
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +type listCapabilities struct {
 | 
	
		
			
				|  |  | +	data []Capability
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +func NewCapabilites() 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)
 | 
	
		
			
				|  |  | +}
 |