getTupleEncoder

Call Signature

function getTupleEncoder<TItems>(
    items,
): FixedSizeEncoder<
    DrainOuterGeneric<{
        [I in
            | string
            | number
            | symbol]: TItems[I<I>] extends Encoder<TFrom>
            ? TFrom
            : never;
    }>
>;

Returns an encoder for tuples.

This encoder serializes a fixed-size array (tuple) by encoding its items sequentially using the provided item encoders.

For more details, see getTupleCodec.

Type Parameters

Type ParameterDescription
TItems extends readonly FixedSizeEncoder<any>[]An array of encoders, each corresponding to a tuple element.

Parameters

ParameterTypeDescription
itemsTItemsThe encoders for each item in the tuple.

Returns

FixedSizeEncoder<DrainOuterGeneric<{ [I in string | number | symbol]: TItems[I<I>] extends Encoder<TFrom> ? TFrom : never }>>

A FixedSizeEncoder or VariableSizeEncoder for encoding tuples.

Example

Encoding a tuple with 2 items.

const encoder = getTupleEncoder([fixCodecSize(getUtf8Encoder(), 5), getU8Encoder()]);
 
const bytes = encoder.encode(['Alice', 42]);
// 0x416c6963652a
//   |         └── Second item (42)
//   └── First item ("Alice")

See

getTupleCodec

Call Signature

function getTupleEncoder<TItems>(
    items,
): VariableSizeEncoder<
    DrainOuterGeneric<{
        [I in
            | string
            | number
            | symbol]: TItems[I<I>] extends Encoder<TFrom>
            ? TFrom
            : never;
    }>
>;

Returns an encoder for tuples.

This encoder serializes a fixed-size array (tuple) by encoding its items sequentially using the provided item encoders.

For more details, see getTupleCodec.

Type Parameters

Type ParameterDescription
TItems extends readonly Encoder<any>[]An array of encoders, each corresponding to a tuple element.

Parameters

ParameterTypeDescription
itemsTItemsThe encoders for each item in the tuple.

Returns

VariableSizeEncoder<DrainOuterGeneric<{ [I in string | number | symbol]: TItems[I<I>] extends Encoder<TFrom> ? TFrom : never }>>

A FixedSizeEncoder or VariableSizeEncoder for encoding tuples.

Example

Encoding a tuple with 2 items.

const encoder = getTupleEncoder([fixCodecSize(getUtf8Encoder(), 5), getU8Encoder()]);
 
const bytes = encoder.encode(['Alice', 42]);
// 0x416c6963652a
//   |         └── Second item (42)
//   └── First item ("Alice")

See

getTupleCodec

On this page