/** * This code was AUTOGENERATED using the Codama library. * Please DO NOT EDIT THIS FILE, instead use visitors * to add features, then rerun Codama to update it. * * @see https://github.com/codama-idl/codama */ import { combineCodec, getDiscriminatedUnionDecoder, getDiscriminatedUnionEncoder, getStructDecoder, getStructEncoder, getTupleDecoder, getTupleEncoder, getU16Decoder, getU16Encoder, getUnitDecoder, getUnitEncoder, type Codec, type Decoder, type Encoder, type GetDiscriminatedUnionVariant, type GetDiscriminatedUnionVariantContent, } from "@solana/kit"; export type ExpanderStep = | { __kind: "ExpandOrContract"; fields: readonly [number] } | { __kind: "Recenter" }; export type ExpanderStepArgs = ExpanderStep; export function getExpanderStepEncoder(): Encoder { return getDiscriminatedUnionEncoder([ [ "ExpandOrContract", getStructEncoder([["fields", getTupleEncoder([getU16Encoder()])]]), ], ["Recenter", getUnitEncoder()], ]); } export function getExpanderStepDecoder(): Decoder { return getDiscriminatedUnionDecoder([ [ "ExpandOrContract", getStructDecoder([["fields", getTupleDecoder([getU16Decoder()])]]), ], ["Recenter", getUnitDecoder()], ]); } export function getExpanderStepCodec(): Codec { return combineCodec(getExpanderStepEncoder(), getExpanderStepDecoder()); } // Data Enum Helpers. export function expanderStep( kind: "ExpandOrContract", data: GetDiscriminatedUnionVariantContent< ExpanderStepArgs, "__kind", "ExpandOrContract" >["fields"], ): GetDiscriminatedUnionVariant; export function expanderStep( kind: "Recenter", ): GetDiscriminatedUnionVariant; export function expanderStep( kind: K, data?: Data, ) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) }; } export function isExpanderStep( kind: K, value: ExpanderStep, ): value is ExpanderStep & { __kind: K } { return value.__kind === kind; }