28 lines
727 B
Nim
28 lines
727 B
Nim
|
|
import
|
|
preserves
|
|
|
|
type
|
|
ContactAssertion* {.preservesRecord: "contact".} = object
|
|
`id`*: BiggestInt
|
|
`cap`* {.preservesEmbedded.}: Preserve[void]
|
|
|
|
ReceivedMessage* {.preservesRecord: "message".} = object
|
|
`prevId`*: Preserve[void]
|
|
`msgId`*: Preserve[void]
|
|
`content`*: Content
|
|
|
|
Content* {.preservesRecord: "text".} = object
|
|
`text`*: string
|
|
|
|
GroupAssertion* {.preservesRecord: "group".} = object
|
|
`id`*: BiggestInt
|
|
`cap`* {.preservesEmbedded.}: Preserve[void]
|
|
|
|
proc `$`*(x: ContactAssertion | ReceivedMessage | Content | GroupAssertion): string =
|
|
`$`(toPreserve(x))
|
|
|
|
proc encode*(x: ContactAssertion | ReceivedMessage | Content | GroupAssertion): seq[
|
|
byte] =
|
|
encode(toPreserve(x))
|