/** * 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, type Codec, type Decoder, type Encoder, type GetDiscriminatedUnionVariant, type GetDiscriminatedUnionVariantContent, } from '@solana/kit'; import { getMaxLevel1SetDecoder, getMaxLevel1SetEncoder, getMaxLevel2SetDecoder, getMaxLevel2SetEncoder, getMaxLevel3SetDecoder, getMaxLevel3SetEncoder, getMaxLevel4SetDecoder, getMaxLevel4SetEncoder, getMaxLevel5SetDecoder, getMaxLevel5SetEncoder, getStarbaseLevelInfoDecoder, getStarbaseLevelInfoEncoder, type MaxLevel1Set, type MaxLevel1SetArgs, type MaxLevel2Set, type MaxLevel2SetArgs, type MaxLevel3Set, type MaxLevel3SetArgs, type MaxLevel4Set, type MaxLevel4SetArgs, type MaxLevel5Set, type MaxLevel5SetArgs, type StarbaseLevelInfo, type StarbaseLevelInfoArgs, } from '.'; export type StarbaseMaxLevelSet = | { __kind: 'Level0'; fields: readonly [StarbaseLevelInfo] } | { __kind: 'Level1'; fields: readonly [MaxLevel1Set] } | { __kind: 'Level2'; fields: readonly [MaxLevel2Set] } | { __kind: 'Level3'; fields: readonly [MaxLevel3Set] } | { __kind: 'Level4'; fields: readonly [MaxLevel4Set] } | { __kind: 'Level5'; fields: readonly [MaxLevel5Set] } | { __kind: 'Css'; fields: readonly [StarbaseLevelInfo] }; export type StarbaseMaxLevelSetArgs = | { __kind: 'Level0'; fields: readonly [StarbaseLevelInfoArgs] } | { __kind: 'Level1'; fields: readonly [MaxLevel1SetArgs] } | { __kind: 'Level2'; fields: readonly [MaxLevel2SetArgs] } | { __kind: 'Level3'; fields: readonly [MaxLevel3SetArgs] } | { __kind: 'Level4'; fields: readonly [MaxLevel4SetArgs] } | { __kind: 'Level5'; fields: readonly [MaxLevel5SetArgs] } | { __kind: 'Css'; fields: readonly [StarbaseLevelInfoArgs] }; export function getStarbaseMaxLevelSetEncoder(): Encoder { return getDiscriminatedUnionEncoder([ [ 'Level0', getStructEncoder([ ['fields', getTupleEncoder([getStarbaseLevelInfoEncoder()])], ]), ], [ 'Level1', getStructEncoder([ ['fields', getTupleEncoder([getMaxLevel1SetEncoder()])], ]), ], [ 'Level2', getStructEncoder([ ['fields', getTupleEncoder([getMaxLevel2SetEncoder()])], ]), ], [ 'Level3', getStructEncoder([ ['fields', getTupleEncoder([getMaxLevel3SetEncoder()])], ]), ], [ 'Level4', getStructEncoder([ ['fields', getTupleEncoder([getMaxLevel4SetEncoder()])], ]), ], [ 'Level5', getStructEncoder([ ['fields', getTupleEncoder([getMaxLevel5SetEncoder()])], ]), ], [ 'Css', getStructEncoder([ ['fields', getTupleEncoder([getStarbaseLevelInfoEncoder()])], ]), ], ]); } export function getStarbaseMaxLevelSetDecoder(): Decoder { return getDiscriminatedUnionDecoder([ [ 'Level0', getStructDecoder([ ['fields', getTupleDecoder([getStarbaseLevelInfoDecoder()])], ]), ], [ 'Level1', getStructDecoder([ ['fields', getTupleDecoder([getMaxLevel1SetDecoder()])], ]), ], [ 'Level2', getStructDecoder([ ['fields', getTupleDecoder([getMaxLevel2SetDecoder()])], ]), ], [ 'Level3', getStructDecoder([ ['fields', getTupleDecoder([getMaxLevel3SetDecoder()])], ]), ], [ 'Level4', getStructDecoder([ ['fields', getTupleDecoder([getMaxLevel4SetDecoder()])], ]), ], [ 'Level5', getStructDecoder([ ['fields', getTupleDecoder([getMaxLevel5SetDecoder()])], ]), ], [ 'Css', getStructDecoder([ ['fields', getTupleDecoder([getStarbaseLevelInfoDecoder()])], ]), ], ]); } export function getStarbaseMaxLevelSetCodec(): Codec< StarbaseMaxLevelSetArgs, StarbaseMaxLevelSet > { return combineCodec( getStarbaseMaxLevelSetEncoder(), getStarbaseMaxLevelSetDecoder(), ); } // Data Enum Helpers. export function starbaseMaxLevelSet( kind: 'Level0', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelSetArgs, '__kind', 'Level0' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevelSet( kind: 'Level1', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelSetArgs, '__kind', 'Level1' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevelSet( kind: 'Level2', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelSetArgs, '__kind', 'Level2' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevelSet( kind: 'Level3', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelSetArgs, '__kind', 'Level3' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevelSet( kind: 'Level4', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelSetArgs, '__kind', 'Level4' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevelSet( kind: 'Level5', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelSetArgs, '__kind', 'Level5' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevelSet( kind: 'Css', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelSetArgs, '__kind', 'Css' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevelSet< K extends StarbaseMaxLevelSetArgs['__kind'], Data, >(kind: K, data?: Data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) }; } export function isStarbaseMaxLevelSet( kind: K, value: StarbaseMaxLevelSet, ): value is StarbaseMaxLevelSet & { __kind: K } { return value.__kind === kind; }