src/jsony

Search:
Group by:
Source   Edit  

Types

JsonError = object of ValueError
Source   Edit  
RawJson = distinct string
Source   Edit  
SomeTable[K; V] = Table[K, V] | OrderedTable[K, V] | TableRef[K, V] |
    OrderedTableRef[K, V]
Source   Edit  

Procs

proc dumpHook(s: var string; v: bool) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc dumpHook(s: var string; v: char) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc dumpHook(s: var string; v: enum)
Source   Edit  
proc dumpHook(s: var string; v: int | int8 | int16 | int32 | int64)
Source   Edit  
proc dumpHook(s: var string; v: JsonNode) {....raises: [], tags: [RootEffect],
    forbids: [].}
Dumps a regular json node. Source   Edit  
proc dumpHook(s: var string; v: object)
Source   Edit  
proc dumpHook(s: var string; v: RawJson) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc dumpHook(s: var string; v: ref)
Source   Edit  
proc dumpHook(s: var string; v: SomeFloat)
Source   Edit  
proc dumpHook(s: var string; v: string) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc dumpHook(s: var string; v: tuple)
Source   Edit  
proc dumpHook(s: var string; v: uint | uint8 | uint16 | uint32 | uint64)
Source   Edit  
proc dumpHook[N, T](s: var string; v: array[N, t[T]])
Source   Edit  
proc dumpHook[N, T](s: var string; v: array[N, T])
Source   Edit  
proc dumpHook[T: distinct](s: var string; v: T)
Source   Edit  
proc dumpHook[T](s: var string; v: Option[T])
Source   Edit  
proc dumpHook[T](s: var string; v: seq[T])
Source   Edit  
proc dumpHook[T](s: var string; v: SomeSet[T] | set[T])
Source   Edit  
proc fromJson(s: string): JsonNode {....raises: [JsonError, ValueError], tags: [],
                                     forbids: [].}
Takes json parses it into JsonNodes. Source   Edit  
proc fromJson[T](s: string; x: typedesc[T]): T
Takes json and outputs the object it represents.
  • Extra json fields are ignored.
  • Missing json fields keep their default values.
  • proc newHook(foo: var ...) Can be used to populate default values.
Source   Edit  
proc parseHook(s: string; i: var int; v: var bool) {....raises: [JsonError],
    tags: [], forbids: [].}
Will parse boolean true or false. Source   Edit  
proc parseHook(s: string; i: var int; v: var char) {.
    ...raises: [JsonError, ValueError], tags: [], forbids: [].}
Source   Edit  
proc parseHook(s: string; i: var int; v: var JsonNode) {.
    ...raises: [JsonError, ValueError, JsonError], tags: [], forbids: [].}
Source   Edit  
proc parseHook(s: string; i: var int; v: var RawJson) {.
    ...raises: [JsonError, ValueError], tags: [], forbids: [].}
Source   Edit  
proc parseHook(s: string; i: var int; v: var SomeFloat)
Will parse float32 and float64. Source   Edit  
proc parseHook(s: string; i: var int; v: var SomeSignedInt)
Will parse signed integers. Source   Edit  
proc parseHook(s: string; i: var int; v: var SomeUnsignedInt)
Will parse unsigned integers. Source   Edit  
proc parseHook(s: string; i: var int; v: var string) {.
    ...raises: [JsonError, ValueError], tags: [], forbids: [].}
Parse string. Source   Edit  
proc parseHook[K: string | enum; V](s: string; i: var int;
                                    v: var SomeTable[K, V])
Source   Edit  
proc parseHook[T: array](s: string; i: var int; v: var T)
Source   Edit  
proc parseHook[T: distinct](s: string; i: var int; v: var T)
Source   Edit  
proc parseHook[T: enum](s: string; i: var int; v: var T)
Source   Edit  
proc parseHook[T: not object](s: string; i: var int; v: var ref T)
Source   Edit  
proc parseHook[T: object | ref object](s: string; i: var int; v: var T)
Source   Edit  
proc parseHook[T: tuple](s: string; i: var int; v: var T)
Source   Edit  
proc parseHook[T](s: string; i: var int; v: var (SomeSet[T] | set[T]))
Source   Edit  
proc parseHook[T](s: string; i: var int; v: var Option[T])
Parse an Option. Source   Edit  
proc parseHook[T](s: string; i: var int; v: var seq[T])
Source   Edit  
proc parseSymbol(s: string; i: var int): string {....raises: [], tags: [],
    forbids: [].}
Will read a symbol and return it. Used for numbers and booleans. Source   Edit  
proc skipValue(s: string; i: var int) {....raises: [JsonError, ValueError],
                                        tags: [], forbids: [].}
Used to skip values of extra fields. Source   Edit  
proc toJson[T](v: T): string
Source   Edit  

Templates

template eatChar(s: string; i: var int; c: char)
Will consume space before and then the character c. Will raise an exception if c is not found. Source   Edit  
template eatSpace(s: string; i: var int)
Will consume whitespace. Source   Edit  
template toStaticJson(v: untyped): static[string]
This will turn v into json at compile time and return the json string. Source   Edit