Skip to content

Serializer

[<Interface>]
type Serializer =
    static member Create (writeHeader: unit -> unit, writeValue: obj -> bool, releaseBuffer: unit -> NonSharedBuffer, transferArrayBuffer: Action<float,ArrayBuffer>, writeUint32: float -> unit, writeUint64: Action<float,float>, writeDouble: float -> unit, writeRawBytes: U12<BigInt64Array<U2<ArrayBuffer,SharedArrayBuffer>>,BigUint64Array<U2<ArrayBuffer,SharedArrayBuffer>>,DataView<U2<ArrayBuffer,SharedArrayBuffer>>,Float32Array<U2<ArrayBuffer,SharedArrayBuffer>>,Float64Array<U2<ArrayBuffer,SharedArrayBuffer>>,Int16Array<U2<ArrayBuffer,SharedArrayBuffer>>,Int32Array<U2<ArrayBuffer,SharedArrayBuffer>>,Int8Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint16Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint32Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint8ClampedArray<U2<ArrayBuffer,SharedArrayBuffer>>> -> unit) : Serializer
    abstract member releaseBuffer () : NonSharedBuffer
    abstract member transferArrayBuffer (id: float, arrayBuffer: ArrayBuffer) : unit
    abstract member writeDouble (value: float) : unit
    abstract member writeHeader () : unit
    abstract member writeRawBytes (buffer: U12<BigInt64Array<U2<ArrayBuffer,SharedArrayBuffer>>,BigUint64Array<U2<ArrayBuffer,SharedArrayBuffer>>,DataView<U2<ArrayBuffer,SharedArrayBuffer>>,Float32Array<U2<ArrayBuffer,SharedArrayBuffer>>,Float64Array<U2<ArrayBuffer,SharedArrayBuffer>>,Int16Array<U2<ArrayBuffer,SharedArrayBuffer>>,Int32Array<U2<ArrayBuffer,SharedArrayBuffer>>,Int8Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint16Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint32Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint8ClampedArray<U2<ArrayBuffer,SharedArrayBuffer>>>) : unit
    abstract member writeUint32 (value: float) : unit
    abstract member writeUint64 (hi: float, lo: float) : unit
    abstract member writeValue (val: obj) : bool
AssemblyXantham.Fable.Node
Attributes[<Interface>]

@since v8.0.0

Methods

static member Create (writeHeader: unit -> unit, writeValue: obj -> bool, releaseBuffer: unit -> NonSharedBuffer, transferArrayBuffer: Action<float,ArrayBuffer>, writeUint32: float -> unit, writeUint64: Action<float,float>, writeDouble: float -> unit, writeRawBytes: U12<BigInt64Array<U2<ArrayBuffer,SharedArrayBuffer>>,BigUint64Array<U2<ArrayBuffer,SharedArrayBuffer>>,DataView<U2<ArrayBuffer,SharedArrayBuffer>>,Float32Array<U2<ArrayBuffer,SharedArrayBuffer>>,Float64Array<U2<ArrayBuffer,SharedArrayBuffer>>,Int16Array<U2<ArrayBuffer,SharedArrayBuffer>>,Int32Array<U2<ArrayBuffer,SharedArrayBuffer>>,Int8Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint16Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint32Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint8ClampedArray<U2<ArrayBuffer,SharedArrayBuffer>>> -> unit) : Serializer
abstract member releaseBuffer () : NonSharedBuffer

Returns the stored internal buffer. This serializer should not be used once the buffer is released. Calling this method results in undefined behavior if a previous write has failed.

abstract member transferArrayBuffer (id: float, arrayBuffer: ArrayBuffer) : unit

Marks an ArrayBuffer as having its contents transferred out of band. Pass the corresponding ArrayBuffer in the deserializing context to deserializer.transferArrayBuffer().

Parameter
idA 32-bit unsigned integer.
arrayBufferAn ArrayBuffer instance.
abstract member writeDouble (value: float) : unit

Write a JS number value. For use inside of a custom serializer._writeHostObject().

abstract member writeHeader () : unit

Writes out a header, which includes the serialization format version.

abstract member writeRawBytes (buffer: U12<BigInt64Array<U2<ArrayBuffer,SharedArrayBuffer>>,BigUint64Array<U2<ArrayBuffer,SharedArrayBuffer>>,DataView<U2<ArrayBuffer,SharedArrayBuffer>>,Float32Array<U2<ArrayBuffer,SharedArrayBuffer>>,Float64Array<U2<ArrayBuffer,SharedArrayBuffer>>,Int16Array<U2<ArrayBuffer,SharedArrayBuffer>>,Int32Array<U2<ArrayBuffer,SharedArrayBuffer>>,Int8Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint16Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint32Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>,Uint8ClampedArray<U2<ArrayBuffer,SharedArrayBuffer>>>) : unit

Write raw bytes into the serializer's internal buffer. The deserializer will require a way to compute the length of the buffer. For use inside of a custom serializer._writeHostObject().

abstract member writeUint32 (value: float) : unit

Write a raw 32-bit unsigned integer. For use inside of a custom serializer._writeHostObject().

abstract member writeUint64 (hi: float, lo: float) : unit

Write a raw 64-bit unsigned integer, split into high and low 32-bit parts. For use inside of a custom serializer._writeHostObject().

abstract member writeValue (val: obj) : bool

Serializes a JavaScript value and adds the serialized representation to the internal buffer.

This throws an error if value cannot be serialized.