2021-10-06 09:30:38 +00:00
|
|
|
|
|
|
|
import
|
2023-05-18 10:20:44 +00:00
|
|
|
preserves
|
2021-10-06 09:30:38 +00:00
|
|
|
|
|
|
|
type
|
2022-12-08 08:15:01 +00:00
|
|
|
TimerExpired* {.preservesRecord: "timer-expired".} = object
|
2023-12-31 17:15:06 +00:00
|
|
|
`label`*: Value
|
2024-02-08 15:25:31 +00:00
|
|
|
`seconds`*: float
|
2021-10-06 09:30:38 +00:00
|
|
|
|
2022-12-08 08:15:01 +00:00
|
|
|
SetTimer* {.preservesRecord: "set-timer".} = object
|
2023-12-31 17:15:06 +00:00
|
|
|
`label`*: Value
|
2024-02-08 15:25:31 +00:00
|
|
|
`seconds`*: float
|
2021-09-24 19:25:47 +00:00
|
|
|
`kind`*: TimerKind
|
2021-10-06 09:30:38 +00:00
|
|
|
|
2022-03-07 23:53:05 +00:00
|
|
|
`TimerKind`* {.preservesOr, pure.} = enum
|
2021-10-06 09:30:38 +00:00
|
|
|
`relative`, `absolute`, `clear`
|
2021-09-24 19:25:47 +00:00
|
|
|
LaterThan* {.preservesRecord: "later-than".} = object
|
2024-02-08 15:25:31 +00:00
|
|
|
`seconds`*: float
|
2021-10-06 09:30:38 +00:00
|
|
|
|
2022-12-08 08:15:01 +00:00
|
|
|
proc `$`*(x: TimerExpired | SetTimer | LaterThan): string =
|
2023-12-31 17:15:06 +00:00
|
|
|
`$`(toPreserves(x))
|
2021-09-24 19:25:47 +00:00
|
|
|
|
2022-12-08 08:15:01 +00:00
|
|
|
proc encode*(x: TimerExpired | SetTimer | LaterThan): seq[byte] =
|
2023-12-31 17:15:06 +00:00
|
|
|
encode(toPreserves(x))
|