mirror of
https://github.com/sstent/go-garth.git
synced 2026-01-27 09:31:47 +00:00
sync - build broken
This commit is contained in:
52
python-garmin-connect/SleepState.go
Normal file
52
python-garmin-connect/SleepState.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package connect
|
||||
|
||||
// SleepState is used to describe the state of sleep with a device capable
|
||||
// of measuring sleep health.
|
||||
type SleepState int
|
||||
|
||||
// Known sleep states in Garmin Connect.
|
||||
const (
|
||||
SleepStateUnknown SleepState = -1
|
||||
SleepStateDeep SleepState = 0
|
||||
SleepStateLight SleepState = 1
|
||||
SleepStateREM SleepState = 2
|
||||
SleepStateAwake SleepState = 3
|
||||
)
|
||||
|
||||
// UnmarshalJSON implements json.Unmarshaler.
|
||||
func (s *SleepState) UnmarshalJSON(value []byte) error {
|
||||
// Garmin abuses floats to transfers enums. We ignore the value, and
|
||||
// simply compares them as strings.
|
||||
switch string(value) {
|
||||
case "0.0":
|
||||
*s = SleepStateDeep
|
||||
case "1.0":
|
||||
*s = SleepStateLight
|
||||
case "2.0":
|
||||
*s = SleepStateREM
|
||||
case "3.0":
|
||||
*s = SleepStateAwake
|
||||
default:
|
||||
*s = SleepStateUnknown
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Sleep implements fmt.Stringer.
|
||||
func (s SleepState) String() string {
|
||||
m := map[SleepState]string{
|
||||
SleepStateUnknown: "Unknown",
|
||||
SleepStateDeep: "Deep",
|
||||
SleepStateLight: "Light",
|
||||
SleepStateREM: "REM",
|
||||
SleepStateAwake: "Awake",
|
||||
}
|
||||
|
||||
str, found := m[s]
|
||||
if !found {
|
||||
str = m[SleepStateUnknown]
|
||||
}
|
||||
|
||||
return str
|
||||
}
|
||||
Reference in New Issue
Block a user