json_serialization/reader_impl

Source   Edit  

Procs

func expectedFieldsBitmask(TT: type; fields: static int): auto {.compileTime,
    ...raises: [], gcsafe.}
Source   Edit  
func isFieldExpected(T: type): bool {.compileTime, ...raises: [], gcsafe.}
Source   Edit  
proc readRecordValue[T](r: var JsonReader; value: var T) {.
    ...raises: [SerializationError, IOError], raises: [], gcsafe.}
Source   Edit  
proc readValue[T](r: var JsonReader; value: var T) {.
    ...raises: [SerializationError, IOError], raises: [], gcsafe.}

Master field/object parser. This function relies on customised sub-mixins for particular object types.

Customised readValue() examples: :: type FancyInt = distinct int FancyUInt = distinct uint

proc readValue(reader: var JsonReader, value: var FancyInt) =
  ## Refer to another readValue() instance
  value = reader.readValue(int).FancyInt
Source   Edit  
func totalExpectedFields(T: type): int {.compileTime, ...raises: [], gcsafe.}
Source   Edit  

Iterators

iterator readArray(r: var JsonReader; ElemType: typedesc): ElemType:type {.
    ...raises: [IOError, SerializationError], raises: [], gcsafe.}
Source   Edit  
iterator readObject(r: var JsonReader; KeyType: type; ValueType: type): (
    KeyType:type, ValueType:type) {....raises: [IOError, SerializationError],
                                    raises: [], gcsafe.}
Source   Edit  
iterator readObjectFields(r: var JsonReader): string {.
    ...raises: [IOError, SerializationError], raises: [], gcsafe.}
Source   Edit  
iterator readObjectFields(r: var JsonReader; KeyType: type): KeyType:type {.
    ...raises: [IOError, SerializationError], raises: [], gcsafe.}
Source   Edit  

Templates

template configureJsonDeserialization(T: type[enum];
                                      allowNumericRepr: static[bool] = false;
    stringNormalizer: static[proc (s: string): string] = strictNormalize) {..}
Source   Edit  

Exports

flavorRequiresAllFields, flavorAllowsUnknownFields, flavorSkipNullFields, createJsonFlavor, flavorEnumRep, DummyFlavor, typeClassOrMemberAutoSerialize, generateJsonAutoSerializationAddon, automaticPrimitivesSerialization, typeClassOrMemberAutoSerialize, automaticBuiltinSerialization, EnumRepresentation, flavorEnumRep, automaticBuiltinSerialization, typeAutoSerialize, flavorOmitsOptionalFields, flavorUsesAutomaticObjectSerialization, flavorRequiresAllFields, flavorAllowsUnknownFields, Json, typeAutoSerialize, flavorOmitsOptionalFields, automaticSerialization, automaticSerialization, automaticPrimitivesSerialization, flavorEnumRep, supports, flavorUsesAutomaticObjectSerialization, flavorSkipNullFields, mimeType, JsonValue, JsonSign, isFloat, JsonError, JsonReaderFlag, ==, JsonNumber, JsonString, defaultJsonReaderConf, maxPortableInt, JsonReaderConf, toInt, hasExponent, $, JsonVoid, ==, valueType, JsonReaderFlags, JsonValueRef, defaultJsonReaderFlags, JsonObjectType, JsonValueKind, minPortableInt, JsonValue, flavorRequiresAllFields, customIntValueIt, JsonReader, CustomIntHandler, NumberPart, IntOverflowError, etBool, GenericJsonReaderError, ==, flavorEnumRep, JsonError, flavorRequiresAllFields, defaultJsonReaderFlags, etBracketRi, handleReadException, EnumRepresentation, UnexpectedField, createJsonFlavor, JsonReaderConf, JsonNumber, flavorEnumRep, etNumber, etCurrlyRi, defaultJsonReaderConf, etCurrlyLe, ==, formatMsg, toFloat, parseObjectCustomKey, JsonReaderError, IncompleteObjectError, checkError, toInt, parseAsString, flavorSkipNullFields, automaticBuiltinSerialization, etValue, hasExponent, isFloat, automaticSerialization, flavorUsesAutomaticObjectSerialization, formatMsg, toInt, JsonValueRef, UnexpectedTokenError, formatMsg, UnexpectedValueError, flavorOmitsOptionalFields, formatMsg, flavorUsesAutomaticObjectSerialization, Reader, parseValue, JsonValueKind, generateJsonAutoSerializationAddon, parseObject, maxPortableInt, supports, customNumberValueIt, flavorEnumRep, JsonSign, parseArray, etBracketLe, raiseUnexpectedField, flavorAllowsUnknownFields, parseAsString, parseObjectWithoutSkip, parseArray, flavorSkipNullFields, typeClassOrMemberAutoSerialize, assignLineNumber, Json, customStringValueIt, ExpectedTokenCategory, automaticSerialization, init, $, formatMsg, automaticBuiltinSerialization, CustomStringHandler, flavorAllowsUnknownFields, customStringHandler, automaticPrimitivesSerialization, parseJsonNode, parseNull, etComma, automaticPrimitivesSerialization, ReaderType, JsonString, formatMsg, etColon, init, raiseUnexpectedToken, parseNumber, typeAutoSerialize, etEnumAny, raiseIncompleteObject, handleReadException, JsonReaderFlag, parseFloat, parseString, valueType, skipSingleJsValue, etString, JsonReaderFlags, DummyFlavor, raiseIntOverflow, etInt, mimeType, typeClassOrMemberAutoSerialize, raiseUnexpectedField, customNumberHandler, JsonVoid, tokKind, toInt, etEnumString, typeAutoSerialize, parseValue, JsonObjectType, parseObjectSkipNullFields, flavorOmitsOptionalFields, formatMsg, parseBool, raiseUnexpectedToken, parseInt, minPortableInt, parseNumber, raiseIncompleteObject, parseString, raiseIntOverflow, raiseUnexpectedValue, CustomNumberHandler, skipSingleJsValue, customIntHandler, customStringValueIt, raiseUnexpectedValue, JsonReaderConf, etString, JsonValue, flavorRequiresAllFields, handleReadException, GenericJsonReaderError, ==, flavorEnumRep, JsonError, Reader, etBracketRi, EnumRepresentation, etBool, UnexpectedField, etColon, createJsonFlavor, JsonNumber, flavorEnumRep, etNumber, etCurrlyRi, IntOverflowError, defaultJsonReaderConf, raiseUnexpectedToken, automaticBuiltinSerialization, defaultJsonReaderFlags, flavorSkipNullFields, JsonReaderError, hasExponent, isFloat, automaticSerialization, IncompleteObjectError, $, toInt, JsonValueRef, UnexpectedTokenError, etEnumString, formatMsg, UnexpectedValueError, flavorOmitsOptionalFields, flavorUsesAutomaticObjectSerialization, flavorRequiresAllFields, JsonReaderFlag, JsonValueKind, JsonReader, maxPortableInt, supports, flavorEnumRep, formatMsg, JsonSign, formatMsg, etBracketLe, handleReadException, flavorAllowsUnknownFields, raiseUnexpectedField, flavorSkipNullFields, typeClassOrMemberAutoSerialize, assignLineNumber, etValue, formatMsg, ExpectedTokenCategory, automaticSerialization, flavorUsesAutomaticObjectSerialization, init, automaticBuiltinSerialization, flavorAllowsUnknownFields, Json, formatMsg, automaticPrimitivesSerialization, etComma, ReaderType, JsonString, automaticPrimitivesSerialization, generateJsonAutoSerializationAddon, typeAutoSerialize, etEnumAny, raiseIncompleteObject, valueType, JsonReaderFlags, DummyFlavor, raiseIntOverflow, etInt, mimeType, ==, typeClassOrMemberAutoSerialize, JsonVoid, etCurrlyLe, typeAutoSerialize, JsonObjectType, formatMsg, raiseUnexpectedField, formatMsg, flavorOmitsOptionalFields, init, raiseUnexpectedToken, minPortableInt, raiseIncompleteObject, raiseIntOverflow, raiseUnexpectedValue, raiseUnexpectedValue