Skip to content

Commit

Permalink
feat: new functions that allow the parsing of connectivity info
Browse files Browse the repository at this point in the history
Signed-off-by: u <[email protected]>
  • Loading branch information
matubu committed Apr 3, 2023
1 parent adc5a73 commit 0a9bb84
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions pkg/netmanager/connectivity.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package netmanager

import (
"fmt"
"strings"
)

type ConnectivityState int
Expand All @@ -25,6 +26,19 @@ func (cs ConnectivityState) String() string {
}
}

func ParseConnectivityState(s string) (ConnectivityState, error) {
switch strings.ToLower(s) {
case "unknown":
return ConnectivityStateUnknown, nil
case "off":
return ConnectivityStateOff, nil
case "on":
return ConnectivityStateOn, nil
default:
return ConnectivityStateUnknown, fmt.Errorf("invalid connectivity state (unknown/off/on): %q", s)
}
}

type ConnectivityNetType int

const (
Expand Down Expand Up @@ -52,6 +66,23 @@ func (cnt ConnectivityNetType) String() string {
}
}

func ParseConnectivityNetType(s string) (ConnectivityNetType, error) {
switch strings.ToLower(s) {
case "unknown":
return ConnectivityNetUnknown, nil
case "none":
return ConnectivityNetNone, nil
case "wifi":
return ConnectivityNetWifi, nil
case "ethernet":
return ConnectivityNetEthernet, nil
case "cellular":
return ConnectivityNetCellular, nil
default:
return ConnectivityNetUnknown, fmt.Errorf("invalid connectivity net type (unknown/none/wifi/ethernet/cellular): %q", s)
}
}

type ConnectivityCellularType int

const (
Expand Down Expand Up @@ -82,6 +113,25 @@ func (cct ConnectivityCellularType) String() string {
}
}

func ParseConnectivityCellularType(s string) (ConnectivityCellularType, error) {
switch strings.ToLower(s) {
case "unknown":
return ConnectivityCellularUnknown, nil
case "none":
return ConnectivityCellularNone, nil
case "2g":
return ConnectivityCellular2G, nil
case "3g":
return ConnectivityCellular3G, nil
case "4g":
return ConnectivityCellular4G, nil
case "5g":
return ConnectivityCellular5G, nil
default:
return ConnectivityCellularUnknown, fmt.Errorf("invalid connectivity cellular type (unknown/none/2g/3g/4g/5g): %q", s)
}
}

type ConnectivityInfo struct {
// False when the device is not connected to a network.
State ConnectivityState
Expand Down

0 comments on commit 0a9bb84

Please sign in to comment.