/** * 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, getU128Decoder, getU128Encoder, getU16Decoder, getU16Encoder, getUnitDecoder, getUnitEncoder, type Codec, type Decoder, type Encoder, type GetDiscriminatedUnionVariant, type GetDiscriminatedUnionVariantContent, } from "@solana/kit"; export type RemoveLiquidityMode = | { __kind: "Liquidity"; fields: readonly [bigint] } | { __kind: "Bps"; fields: readonly [number] } | { __kind: "All" }; export type RemoveLiquidityModeArgs = | { __kind: "Liquidity"; fields: readonly [number | bigint] } | { __kind: "Bps"; fields: readonly [number] } | { __kind: "All" }; export function getRemoveLiquidityModeEncoder(): Encoder { return getDiscriminatedUnionEncoder([ [ "Liquidity", getStructEncoder([["fields", getTupleEncoder([getU128Encoder()])]]), ], ["Bps", getStructEncoder([["fields", getTupleEncoder([getU16Encoder()])]])], ["All", getUnitEncoder()], ]); } export function getRemoveLiquidityModeDecoder(): Decoder { return getDiscriminatedUnionDecoder([ [ "Liquidity", getStructDecoder([["fields", getTupleDecoder([getU128Decoder()])]]), ], ["Bps", getStructDecoder([["fields", getTupleDecoder([getU16Decoder()])]])], ["All", getUnitDecoder()], ]); } export function getRemoveLiquidityModeCodec(): Codec< RemoveLiquidityModeArgs, RemoveLiquidityMode > { return combineCodec( getRemoveLiquidityModeEncoder(), getRemoveLiquidityModeDecoder(), ); } // Data Enum Helpers. export function removeLiquidityMode( kind: "Liquidity", data: GetDiscriminatedUnionVariantContent< RemoveLiquidityModeArgs, "__kind", "Liquidity" >["fields"], ): GetDiscriminatedUnionVariant; export function removeLiquidityMode( kind: "Bps", data: GetDiscriminatedUnionVariantContent< RemoveLiquidityModeArgs, "__kind", "Bps" >["fields"], ): GetDiscriminatedUnionVariant; export function removeLiquidityMode( kind: "All", ): GetDiscriminatedUnionVariant; export function removeLiquidityMode< K extends RemoveLiquidityModeArgs["__kind"], Data, >(kind: K, data?: Data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) }; } export function isRemoveLiquidityMode( kind: K, value: RemoveLiquidityMode, ): value is RemoveLiquidityMode & { __kind: K } { return value.__kind === kind; }