icalendar_actor/src/icalendar_components.nim

27 lines
734 B
Nim

import
preserves, std/tables
type
CalendarDataspace* {.preservesRecord: "calendar".} = object
`url`*: string
`dataspace`* {.preservesEmbedded.}: Preserve[void]
Property* {.preservesTuple.} = object
`label`*: string
`parameters`*: Parameters
`type`*: string
`values`* {.preservesTupleTail.}: seq[Preserve[void]]
Parameters* = Table[Symbol, string]
Component* {.acyclic, preservesTuple.} = ref object
`label`*: string
`properties`*: seq[Property]
`components`*: seq[Component]
proc `$`*(x: CalendarDataspace | Property | Parameters | Component): string =
`$`(toPreserve(x))
proc encode*(x: CalendarDataspace | Property | Parameters | Component): seq[byte] =
encode(toPreserve(x))