syndicated-open/src/protocol.nim

37 lines
978 B
Nim
Raw Permalink Normal View History

2022-02-26 23:39:22 +00:00
import
2023-05-18 09:46:17 +00:00
preserves
2022-02-26 23:39:22 +00:00
type
Open* {.preservesRecord: "open".} = object
`uri`*: Uri
2022-02-26 23:39:22 +00:00
2023-05-18 09:46:17 +00:00
UriRunnerConfig* {.preservesDictionary.} = object
`handlerspace`* {.preservesEmbedded.}: Preserve[void]
`urispace`* {.preservesEmbedded.}: Preserve[void]
Authority* {.preservesTuple.} = object
`username`*: Preserve[void]
`password`*: Preserve[void]
`host`*: Preserve[void]
`port`*: Preserve[void]
Uri* {.preservesRecord: "uri".} = object
`scheme`*: string
`auth`*: Authority
`path`*: Preserve[void]
`query`*: Preserve[void]
`fragment`*: Preserve[void]
2023-03-02 02:50:46 +00:00
ActionHandler* {.preservesRecord: "action-handler".} = object
2022-02-26 23:39:22 +00:00
`pat`*: string
2023-03-02 02:50:46 +00:00
`entity`* {.preservesEmbedded.}: Preserve[void]
`action`*: Preserve[void]
2022-02-26 23:39:22 +00:00
proc `$`*(x: Open | UriRunnerConfig | Authority | Uri | ActionHandler): string =
2022-02-26 23:39:22 +00:00
`$`(toPreserve(x))
proc encode*(x: Open | UriRunnerConfig | Authority | Uri | ActionHandler): seq[
byte] =
2022-02-26 23:39:22 +00:00
encode(toPreserve(x))