icalendar_actor/src/icalendar_components.nim

27 lines
711 B
Nim
Raw Normal View History

2023-08-25 19:12:49 +00:00
import
preserves, std/tables
type
CalendarDataspace* {.preservesRecord: "calendar".} = object
`url`*: string
2024-03-15 12:23:50 +00:00
`dataspace`* {.preservesEmbedded.}: EmbeddedRef
2023-08-25 19:12:49 +00:00
Property* {.preservesTuple.} = object
`label`*: string
`parameters`*: Parameters
`type`*: string
2024-03-15 12:23:50 +00:00
`values`* {.preservesTupleTail.}: seq[Value]
2023-08-25 19:12:49 +00:00
Parameters* = Table[Symbol, string]
2024-03-15 12:23:50 +00:00
Component* {.preservesTuple.} = object
2023-08-25 19:12:49 +00:00
`label`*: string
`properties`*: seq[Property]
`components`*: seq[Component]
proc `$`*(x: CalendarDataspace | Property | Parameters | Component): string =
2024-03-15 12:23:50 +00:00
`$`(toPreserves(x))
2023-08-25 19:12:49 +00:00
proc encode*(x: CalendarDataspace | Property | Parameters | Component): seq[byte] =
2024-03-15 12:23:50 +00:00
encode(toPreserves(x))