import std/typetraits, preserves type ToxFriendSend* {.preservesRecord: "ToxFriendSend".} = object `num`*: int `message`*: string ToxCoreVersion* {.preservesRecord: "ToxCoreVersion".} = object `major`*: int `minor`*: int `patch`*: int ToxFriendLastOnline* {.preservesRecord: "ToxFriendLastNnline".} = object `num`*: int `unixEpoch`*: float64 ToxSelfConnectionStatus* {.preservesRecord: "ToxSelfConnectionStatus".} = object `status`*: Symbol ToxSelfStatus* {.preservesRecord: "ToxSelfStatus".} = object `status`*: Status BootstrapNode* {.preservesRecord: "bootstrap".} = object `publicKey`*: string `host`*: string `port`*: int ToxSelfStatusMessage* {.preservesRecord: "ToxSelfStatusMessage".} = object `message`*: string `Status`* {.preservesOr, pure.} = enum `online`, `away`, `busy` ToxSelfName* {.preservesRecord: "ToxSelfName".} = object `name`*: string ToxFriendKey* {.preservesRecord: "ToxFriendkey".} = object `num`*: int `key`*: seq[byte] ListenOn*[E] {.preservesRecord: "listen-on".} = ref object `dataspace`*: Preserve[E] ToxSelfAddress* {.preservesRecord: "ToxSelfAddress".} = object `address`*: seq[byte] ToxFriendAdd* {.preservesRecord: "ToxFriendAdd".} = object `address`*: seq[byte] `message`*: string ToxFriendStatusMessage* {.preservesRecord: "ToxFriendStatusMessage".} = object `num`*: int `message`*: string ToxFriendName* {.preservesRecord: "ToxFriendName".} = object `num`*: int `name`*: string ToxFriendTyping* {.preservesRecord: "ToxFriendTyping".} = object `num`*: int proc `$`*[E](x: ListenOn[E]): string = `$`(toPreserve(x, E)) proc encode*[E](x: ListenOn[E]): seq[byte] = encode(toPreserve(x, E)) proc `$`*(x: ToxFriendSend | ToxCoreVersion | ToxFriendLastOnline | ToxSelfConnectionStatus | ToxSelfStatus | BootstrapNode | ToxSelfStatusMessage | ToxSelfName | ToxFriendKey | ToxSelfAddress | ToxFriendAdd | ToxFriendStatusMessage | ToxFriendName | ToxFriendTyping): string = `$`(toPreserve(x)) proc encode*(x: ToxFriendSend | ToxCoreVersion | ToxFriendLastOnline | ToxSelfConnectionStatus | ToxSelfStatus | BootstrapNode | ToxSelfStatusMessage | ToxSelfName | ToxFriendKey | ToxSelfAddress | ToxFriendAdd | ToxFriendStatusMessage | ToxFriendName | ToxFriendTyping): seq[byte] = encode(toPreserve(x))