syndicate-nim/src/syndicate/protocols/timer.nim

25 lines
605 B
Nim

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