Kit
Functions

getStructDecoder

Call Signature

getStructDecoder<TFields>(fields): FixedSizeDecoder<DrainOuterGeneric<{ [I in never as TFields[I][0]]: TFields[I][1] extends Decoder<TTo> ? TTo : never }>>

Returns a decoder for custom objects.

This decoder deserializes an object by decoding its fields sequentially, using the provided field decoders.

For more details, see getStructCodec.

Type Parameters

Type ParameterDescription
TFields extends Fields<FixedSizeDecoder<any>>The fields of the struct, each paired with a decoder.

Parameters

ParameterTypeDescription
fieldsTFieldsThe name and decoder of each field.

Returns

FixedSizeDecoder<DrainOuterGeneric<{ [I in never as TFields[I][0]]: TFields[I][1] extends Decoder<TTo> ? TTo : never }>>

A FixedSizeDecoder or VariableSizeDecoder for decoding custom objects.

Example

Decoding a custom struct.

const decoder = getStructDecoder([
  ['name', fixCodecSize(getUtf8Decoder(), 5)],
  ['age', getU8Decoder()]
]);
 
const struct = decoder.decode(new Uint8Array([
  0x41,0x6c,0x69,0x63,0x65,0x2a
]));
// { name: 'Alice', age: 42 }

See

getStructCodec

Call Signature

getStructDecoder<TFields>(fields): VariableSizeDecoder<DrainOuterGeneric<{ [I in never as TFields[I][0]]: TFields[I][1] extends Decoder<TTo> ? TTo : never }>>

Returns a decoder for custom objects.

This decoder deserializes an object by decoding its fields sequentially, using the provided field decoders.

For more details, see getStructCodec.

Type Parameters

Type ParameterDescription
TFields extends Fields<Decoder<any>>The fields of the struct, each paired with a decoder.

Parameters

ParameterTypeDescription
fieldsTFieldsThe name and decoder of each field.

Returns

VariableSizeDecoder<DrainOuterGeneric<{ [I in never as TFields[I][0]]: TFields[I][1] extends Decoder<TTo> ? TTo : never }>>

A FixedSizeDecoder or VariableSizeDecoder for decoding custom objects.

Example

Decoding a custom struct.

const decoder = getStructDecoder([
  ['name', fixCodecSize(getUtf8Decoder(), 5)],
  ['age', getU8Decoder()]
]);
 
const struct = decoder.decode(new Uint8Array([
  0x41,0x6c,0x69,0x63,0x65,0x2a
]));
// { name: 'Alice', age: 42 }

See

getStructCodec

On this page