Header menu logo CodecMapper

Core Module

Low-level byte reading and writing primitives shared by the JSON and XML runtimes.

Types and nested modules

Type/Module Description

ByteSource (Module)

Functional helpers over `ByteSource`.

ByteSource (Type)

A lightweight context for reading bytes.

IByteWriter

Abstraction for writing bytes, to be implemented per target platform.

ResizableBuffer

Growable in-memory byte buffer used by the built-in codecs.

Functions and values

Function or value Description

isEmptyCollectionValue value

Full Usage: isEmptyCollectionValue value

Parameters:
    value : obj

Returns: bool

Field-policy wrappers sometimes need to distinguish explicit empty collections from non-empty ones without caring about the concrete type.

value : obj
Returns: bool

parseByteInvariant typeName token

Full Usage: parseByteInvariant typeName token

Parameters:
    typeName : string
    token : string

Returns: byte
typeName : string
token : string
Returns: byte

parseDateTimeOffsetRoundtripInvariant text

Full Usage: parseDateTimeOffsetRoundtripInvariant text

Parameters:
    text : string

Returns: DateTimeOffset

The package consumer path exercises the published Fable runtime rather than the local source build, so `DateTimeOffset` parsing needs the same fallback to avoid importing helpers that the package does not ship.

text : string
Returns: DateTimeOffset

parseDateTimeRoundtripInvariant text

Full Usage: parseDateTimeRoundtripInvariant text

Parameters:
    text : string

Returns: DateTime

Fable's packaged `fable-library-js` surface does not currently expose the `ParseExact` helpers for date/time types, so the shared schemas need one portable entry point that preserves exact parsing on .NET and compatible parsing on Fable.

text : string
Returns: DateTime

parseDecimalInvariant typeName token

Full Usage: parseDecimalInvariant typeName token

Parameters:
    typeName : string
    token : string

Returns: decimal
typeName : string
token : string
Returns: decimal

parseDecimalInvariantBytes typeName data offset length

Full Usage: parseDecimalInvariantBytes typeName data offset length

Parameters:
    typeName : string
    data : byte[]
    offset : int
    length : int

Returns: decimal

Decimal parsing follows the same byte-level path so JSON numeric decode stays symmetric with the existing integer fast paths on .NET.

typeName : string
data : byte[]
offset : int
length : int
Returns: decimal

parseFloatInvariant typeName token

Full Usage: parseFloatInvariant typeName token

Parameters:
    typeName : string
    token : string

Returns: float
typeName : string
token : string
Returns: float

parseFloatInvariantBytes typeName data offset length

Full Usage: parseFloatInvariantBytes typeName data offset length

Parameters:
    typeName : string
    data : byte[]
    offset : int
    length : int

Returns: float

The handwritten JSON parser already identifies numeric token bounds in the UTF-8 source, so the .NET fast path can parse directly from bytes and avoid allocating transient strings for every float and decimal.

typeName : string
data : byte[]
offset : int
length : int
Returns: float

parseInt16Invariant typeName token

Full Usage: parseInt16Invariant typeName token

Parameters:
    typeName : string
    token : string

Returns: int16
typeName : string
token : string
Returns: int16

parseInt32Invariant typeName token

Full Usage: parseInt32Invariant typeName token

Parameters:
    typeName : string
    token : string

Returns: int
typeName : string
token : string
Returns: int

parseInt32InvariantBytes typeName data offset length

Full Usage: parseInt32InvariantBytes typeName data offset length

Parameters:
    typeName : string
    data : byte[]
    offset : int
    length : int

Returns: int
typeName : string
data : byte[]
offset : int
length : int
Returns: int

parseInt64Invariant typeName token

Full Usage: parseInt64Invariant typeName token

Parameters:
    typeName : string
    token : string

Returns: int64
typeName : string
token : string
Returns: int64

parseInt64InvariantBytes typeName data offset length

Full Usage: parseInt64InvariantBytes typeName data offset length

Parameters:
    typeName : string
    data : byte[]
    offset : int
    length : int

Returns: int64
typeName : string
data : byte[]
offset : int
length : int
Returns: int64

parseSByteInvariant typeName token

Full Usage: parseSByteInvariant typeName token

Parameters:
    typeName : string
    token : string

Returns: sbyte
typeName : string
token : string
Returns: sbyte

parseTimeSpanConstantInvariant text

Full Usage: parseTimeSpanConstantInvariant text

Parameters:
    text : string

Returns: TimeSpan

`TimeSpan.ParseExact` hits the same missing-helper problem under Fable, while plain invariant parsing still accepts the canonical `"c"` payloads that the encoder emits.

text : string
Returns: TimeSpan

parseUInt16Invariant typeName token

Full Usage: parseUInt16Invariant typeName token

Parameters:
    typeName : string
    token : string

Returns: uint16
typeName : string
token : string
Returns: uint16

parseUInt32Invariant typeName token

Full Usage: parseUInt32Invariant typeName token

Parameters:
    typeName : string
    token : string

Returns: uint32
typeName : string
token : string
Returns: uint32

parseUInt32InvariantBytes typeName data offset length

Full Usage: parseUInt32InvariantBytes typeName data offset length

Parameters:
    typeName : string
    data : byte[]
    offset : int
    length : int

Returns: uint32
typeName : string
data : byte[]
offset : int
length : int
Returns: uint32

parseUInt64Invariant typeName token

Full Usage: parseUInt64Invariant typeName token

Parameters:
    typeName : string
    token : string

Returns: uint64
typeName : string
token : string
Returns: uint64

parseUInt64InvariantBytes typeName data offset length

Full Usage: parseUInt64InvariantBytes typeName data offset length

Parameters:
    typeName : string
    data : byte[]
    offset : int
    length : int

Returns: uint64
typeName : string
data : byte[]
offset : int
length : int
Returns: uint64

tryParseByteInvariant text

Full Usage: tryParseByteInvariant text

Parameters:
    text : string

Returns: byte option
text : string
Returns: byte option

tryParseDecimalInvariant

Full Usage: tryParseDecimalInvariant

Returns: string -> decimal option
Returns: string -> decimal option

tryParseFloatInvariant

Full Usage: tryParseFloatInvariant

Returns: string -> float option
Returns: string -> float option

tryParseInt16Invariant text

Full Usage: tryParseInt16Invariant text

Parameters:
    text : string

Returns: int16 option
text : string
Returns: int16 option

tryParseInt32Invariant text

Full Usage: tryParseInt32Invariant text

Parameters:
    text : string

Returns: int option
text : string
Returns: int option

tryParseInt64Invariant text

Full Usage: tryParseInt64Invariant text

Parameters:
    text : string

Returns: int64 option
text : string
Returns: int64 option

tryParseSByteInvariant text

Full Usage: tryParseSByteInvariant text

Parameters:
    text : string

Returns: sbyte option
text : string
Returns: sbyte option

tryParseUInt16Invariant text

Full Usage: tryParseUInt16Invariant text

Parameters:
    text : string

Returns: uint16 option
text : string
Returns: uint16 option

tryParseUInt32Invariant text

Full Usage: tryParseUInt32Invariant text

Parameters:
    text : string

Returns: uint32 option
text : string
Returns: uint32 option

tryParseUInt64Invariant text

Full Usage: tryParseUInt64Invariant text

Parameters:
    text : string

Returns: uint64 option
text : string
Returns: uint64 option

Type something to start searching.