瀏覽代碼

capability

V2Ray 10 年之前
父節點
當前提交
6a2df21727
共有 1 個文件被更改,包括 36 次插入0 次删除
  1. 36 0
      capability.go

+ 36 - 0
capability.go

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