import preserves type Bind* {.preservesRecord: "bind".} = object `description`*: Description `target`* {.preservesEmbedded.}: EmbeddedRef `observer`*: BindObserver Route* {.preservesRecord: "route".} = object `transports`*: seq[Value] `pathSteps`* {.preservesTupleTail.}: seq[PathStep] BindObserverKind* {.pure.} = enum `present`, `absent` `BindObserver`* {.preservesOr.} = object case orKind*: BindObserverKind of BindObserverKind.`present`: `present`* {.preservesEmbedded.}: EmbeddedRef of BindObserverKind.`absent`: `absent`* {.preservesLiteral: "#f".}: bool TransportConnection* {.preservesRecord: "connect-transport".} = object `addr`*: Value `control`* {.preservesEmbedded.}: EmbeddedRef `resolved`*: Resolved Step* = Value ResolvedPathStep* {.preservesRecord: "path-step".} = object `origin`* {.preservesEmbedded.}: EmbeddedRef `pathStep`*: PathStep `resolved`*: Resolved BoundKind* {.pure.} = enum `bound`, `Rejected` BoundBound* {.preservesRecord: "bound".} = object `pathStep`*: PathStep `Bound`* {.preservesOr.} = object case orKind*: BoundKind of BoundKind.`bound`: `bound`*: BoundBound of BoundKind.`Rejected`: `rejected`*: Rejected ForceDisconnect* {.preservesRecord: "force-disconnect".} = object Description* = Value Rejected* {.preservesRecord: "rejected".} = object `detail`*: Value Resolve* {.preservesRecord: "resolve".} = object `step`*: Step `observer`* {.preservesEmbedded.}: EmbeddedRef ResolvedKind* {.pure.} = enum `accepted`, `Rejected` ResolvedAccepted* {.preservesRecord: "accepted".} = object `responderSession`* {.preservesEmbedded.}: EmbeddedRef `Resolved`* {.preservesOr.} = object case orKind*: ResolvedKind of ResolvedKind.`accepted`: `accepted`* {.preservesEmbedded.}: ResolvedAccepted of ResolvedKind.`Rejected`: `rejected`*: Rejected TransportControl* = ForceDisconnect ResolvePath* {.preservesRecord: "resolve-path".} = object `route`*: Route `addr`*: Value `control`* {.preservesEmbedded.}: EmbeddedRef `resolved`*: Resolved PathStep* = Value proc `$`*(x: Bind | Route | BindObserver | TransportConnection | ResolvedPathStep | Bound | ForceDisconnect | Rejected | Resolve | Resolved | TransportControl | ResolvePath): string = `$`(toPreserves(x)) proc encode*(x: Bind | Route | BindObserver | TransportConnection | ResolvedPathStep | Bound | ForceDisconnect | Rejected | Resolve | Resolved | TransportControl | ResolvePath): seq[byte] = encode(toPreserves(x))