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
|
2023-06-30 14:26:22 +00:00
|
|
|
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]
|
2022-03-19 00:22:31 +00:00
|
|
|
|
2023-06-30 14:26:22 +00:00
|
|
|
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
|
|
|
|
2023-06-30 14:26:22 +00:00
|
|
|
proc `$`*(x: Open | UriRunnerConfig | Authority | Uri | ActionHandler): string =
|
2022-02-26 23:39:22 +00:00
|
|
|
`$`(toPreserve(x))
|
|
|
|
|
2023-06-30 14:26:22 +00:00
|
|
|
proc encode*(x: Open | UriRunnerConfig | Authority | Uri | ActionHandler): seq[
|
|
|
|
byte] =
|
2022-02-26 23:39:22 +00:00
|
|
|
encode(toPreserve(x))
|