import preserves type TcpLocal* {.preservesRecord: "tcp-local".} = object `host`*: string `port`*: BiggestInt TcpPeerInfo* {.preservesRecord: "tcp-peer".} = object `handle`* {.preservesEmbedded.}: EmbeddedRef `local`*: TcpLocal `remote`*: TcpRemote TcpRemote* {.preservesRecord: "tcp-remote".} = object `host`*: string `port`*: BiggestInt proc `$`*(x: TcpLocal | TcpPeerInfo | TcpRemote): string = `$`(toPreserves(x)) proc encode*(x: TcpLocal | TcpPeerInfo | TcpRemote): seq[byte] = encode(toPreserves(x))