109 lines
2.8 KiB
Nim
109 lines
2.8 KiB
Nim
|
|
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
|
|
|
|
ToxFriendBacklog* {.preservesRecord: "ToxFriendBacklog".} = object
|
|
`num`*: int
|
|
`start`*: float64
|
|
`stop`*: float64
|
|
|
|
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
|
|
|
|
ToxFriendRequest* {.preservesRecord: "ToxFriendRequest".} = object
|
|
`key`*: seq[byte]
|
|
`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 |
|
|
ToxFriendBacklog |
|
|
BootstrapNode |
|
|
ToxSelfStatusMessage |
|
|
ToxSelfName |
|
|
ToxFriendKey |
|
|
ToxSelfAddress |
|
|
ToxFriendAdd |
|
|
ToxFriendStatusMessage |
|
|
ToxFriendRequest |
|
|
ToxFriendName |
|
|
ToxFriendTyping): string =
|
|
`$`(toPreserve(x))
|
|
|
|
proc encode*(x: ToxFriendSend | ToxCoreVersion | ToxFriendLastOnline |
|
|
ToxSelfConnectionStatus |
|
|
ToxSelfStatus |
|
|
ToxFriendBacklog |
|
|
BootstrapNode |
|
|
ToxSelfStatusMessage |
|
|
ToxSelfName |
|
|
ToxFriendKey |
|
|
ToxSelfAddress |
|
|
ToxFriendAdd |
|
|
ToxFriendStatusMessage |
|
|
ToxFriendRequest |
|
|
ToxFriendName |
|
|
ToxFriendTyping): seq[byte] =
|
|
encode(toPreserve(x))
|