package constant import ( "github.com/sagernet/sing/common" F "github.com/sagernet/sing/common/format" ) const ( InterfaceTypeWIFI = "wifi" InterfaceTypeCellular = "cellular" InterfaceTypeEthernet = "ethernet" InterfaceTypeOther = "other" ) type NetworkStrategy int const ( NetworkStrategyDefault NetworkStrategy = iota NetworkStrategyFallback NetworkStrategyHybrid NetworkStrategyWIFI NetworkStrategyCellular NetworkStrategyEthernet NetworkStrategyWIFIOnly NetworkStrategyCellularOnly NetworkStrategyEthernetOnly ) var ( NetworkStrategyToString = map[NetworkStrategy]string{ NetworkStrategyDefault: "default", NetworkStrategyFallback: "fallback", NetworkStrategyHybrid: "hybrid", NetworkStrategyWIFI: "wifi", NetworkStrategyCellular: "cellular", NetworkStrategyEthernet: "ethernet", NetworkStrategyWIFIOnly: "wifi_only", NetworkStrategyCellularOnly: "cellular_only", NetworkStrategyEthernetOnly: "ethernet_only", } StringToNetworkStrategy = common.ReverseMap(NetworkStrategyToString) ) func (s NetworkStrategy) String() string { name, loaded := NetworkStrategyToString[s] if !loaded { return F.ToString(int(s)) } return name }