import preserves type Open* {.preservesRecord: "open".} = object `uri`*: Uri 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] ActionHandler* {.preservesRecord: "action-handler".} = object `pat`*: string `entity`* {.preservesEmbedded.}: Preserve[void] `action`*: Preserve[void] proc `$`*(x: Open | UriRunnerConfig | Authority | Uri | ActionHandler): string = `$`(toPreserve(x)) proc encode*(x: Open | UriRunnerConfig | Authority | Uri | ActionHandler): seq[ byte] = encode(toPreserve(x))