25 lines
584 B
Nim
25 lines
584 B
Nim
|
|
import
|
|
preserves
|
|
|
|
type
|
|
TimerExpired* {.preservesRecord: "timer-expired".} = object
|
|
`label`*: Value
|
|
`seconds`*: float
|
|
|
|
SetTimer* {.preservesRecord: "set-timer".} = object
|
|
`label`*: Value
|
|
`seconds`*: float
|
|
`kind`*: TimerKind
|
|
|
|
`TimerKind`* {.preservesOr, pure.} = enum
|
|
`relative`, `absolute`, `clear`
|
|
LaterThan* {.preservesRecord: "later-than".} = object
|
|
`seconds`*: float
|
|
|
|
proc `$`*(x: TimerExpired | SetTimer | LaterThan): string =
|
|
`$`(toPreserves(x))
|
|
|
|
proc encode*(x: TimerExpired | SetTimer | LaterThan): seq[byte] =
|
|
encode(toPreserves(x))
|