network.go 703 B

123456789101112131415161718192021222324252627282930313233343536
  1. package net
  2. import (
  3. "github.com/v2ray/v2ray-core/common/serial"
  4. )
  5. const (
  6. TCPNetwork = Network("tcp")
  7. UDPNetwork = Network("udp")
  8. )
  9. type Network serial.StringLiteral
  10. func (this Network) AsList() *NetworkList {
  11. list := NetworkList([]Network{this})
  12. return &list
  13. }
  14. type NetworkList []Network
  15. func NewNetworkList(networks serial.StringLiteralList) NetworkList {
  16. list := NetworkList(make([]Network, networks.Len()))
  17. for idx, network := range networks {
  18. list[idx] = Network(network.TrimSpace().ToLower())
  19. }
  20. return list
  21. }
  22. func (this *NetworkList) HasNetwork(network Network) bool {
  23. for _, value := range *this {
  24. if string(value) == string(network) {
  25. return true
  26. }
  27. }
  28. return false
  29. }