| 
					
				 | 
			
			
				@@ -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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |