getDiscriminatedUnionCodec
Returns a codec for encoding and decoding DiscriminatedUnion.
A DiscriminatedUnion is a TypeScript representation of Rust-like enums, where
each variant is distinguished by a discriminator field (default: __kind).
This codec inserts a numerical prefix to represent the variant index.
Type Parameters
| Type Parameter | Default type | Description |
|---|---|---|
TVariants extends Variants<Codec<any, any>> | - | The variants of the discriminated union. |
TDiscriminatorProperty extends string | "__kind" | The property used as the discriminator. |
Parameters
| Parameter | Type | Description |
|---|---|---|
variants | TVariants | The variant codecs as [discriminator, codec] pairs. |
config? | DiscriminatedUnionCodecConfig<TDiscriminatorProperty, NumberCodec> | Configuration options for encoding/decoding. |
Returns
UnionCodec<TVariants, TDiscriminatorProperty>
A Codec for encoding and decoding discriminated union objects.
Examples
Encoding and decoding a discriminated union.
Using a u32 discriminator instead of u8.
Customizing the discriminator property.
Remarks
Separate getDiscriminatedUnionEncoder and getDiscriminatedUnionDecoder functions are available.