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

25 lines
605 B
Nim
Raw Normal View History

import
2023-05-18 10:20:44 +00:00
preserves
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-06 16:47:47 +00:00
`seconds`*: BiggestFloat
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-06 16:47:47 +00:00
`seconds`*: BiggestFloat
2021-09-24 19:25:47 +00:00
`kind`*: TimerKind
`TimerKind`* {.preservesOr, pure.} = enum
`relative`, `absolute`, `clear`
2021-09-24 19:25:47 +00:00
LaterThan* {.preservesRecord: "later-than".} = object
2024-02-06 16:47:47 +00:00
`seconds`*: BiggestFloat
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))