2021-10-06 09:30:38 +00:00
|
|
|
|
|
|
|
import
|
|
|
|
std/typetraits, preserves
|
|
|
|
|
|
|
|
type
|
2022-12-08 08:15:01 +00:00
|
|
|
TimerExpired* {.preservesRecord: "timer-expired".} = object
|
|
|
|
`label`*: Preserve[void]
|
2021-10-06 09:30:38 +00:00
|
|
|
`msecs`*: float64
|
|
|
|
|
2022-12-08 08:15:01 +00:00
|
|
|
SetTimer* {.preservesRecord: "set-timer".} = object
|
|
|
|
`label`*: Preserve[void]
|
2021-10-06 09:30:38 +00:00
|
|
|
`msecs`*: float64
|
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
|
2021-10-06 09:30:38 +00:00
|
|
|
`msecs`*: float64
|
|
|
|
|
2022-12-08 08:15:01 +00:00
|
|
|
proc `$`*(x: TimerExpired | SetTimer | LaterThan): string =
|
2021-09-24 19:25:47 +00:00
|
|
|
`$`(toPreserve(x))
|
|
|
|
|
2022-12-08 08:15:01 +00:00
|
|
|
proc encode*(x: TimerExpired | SetTimer | LaterThan): seq[byte] =
|
2021-09-24 19:25:47 +00:00
|
|
|
encode(toPreserve(x))
|