package constant import ( "github.com/sagernet/sing/common" F "github.com/sagernet/sing/common/format" ) type InterfaceType uint8 const ( InterfaceTypeWIFI InterfaceType = iota InterfaceTypeCellular InterfaceTypeEthernet InterfaceTypeOther ) var ( interfaceTypeToString = map[InterfaceType]string{ InterfaceTypeWIFI: "wifi", InterfaceTypeCellular: "cellular", InterfaceTypeEthernet: "ethernet", InterfaceTypeOther: "other", } StringToInterfaceType = common.ReverseMap(interfaceTypeToString) ) func (t InterfaceType) String() string { name, loaded := interfaceTypeToString[t] if !loaded { return F.ToString(int(t)) } return name } type NetworkStrategy uint8 const ( NetworkStrategyDefault NetworkStrategy = iota NetworkStrategyFallback NetworkStrategyHybrid ) var ( networkStrategyToString = map[NetworkStrategy]string{ NetworkStrategyDefault: "default", NetworkStrategyFallback: "fallback", NetworkStrategyHybrid: "hybrid", } StringToNetworkStrategy = common.ReverseMap(networkStrategyToString) ) func (s NetworkStrategy) String() string { name, loaded := networkStrategyToString[s] if !loaded { return F.ToString(int(s)) } return name }