/** * 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 { getMaxLevel1Decoder, getMaxLevel1Encoder, getMaxLevel2Decoder, getMaxLevel2Encoder, getMaxLevel3Decoder, getMaxLevel3Encoder, getMaxLevel4Decoder, getMaxLevel4Encoder, getMaxLevel5Decoder, getMaxLevel5Encoder, getStarbaseLevelInfoDecoder, getStarbaseLevelInfoEncoder, type MaxLevel1, type MaxLevel1Args, type MaxLevel2, type MaxLevel2Args, type MaxLevel3, type MaxLevel3Args, type MaxLevel4, type MaxLevel4Args, type MaxLevel5, type MaxLevel5Args, type StarbaseLevelInfo, type StarbaseLevelInfoArgs, } from '.'; export type StarbaseMaxLevel = | { __kind: 'Level0'; fields: readonly [StarbaseLevelInfo] } | { __kind: 'Level1'; fields: readonly [MaxLevel1] } | { __kind: 'Level2'; fields: readonly [MaxLevel2] } | { __kind: 'Level3'; fields: readonly [MaxLevel3] } | { __kind: 'Level4'; fields: readonly [MaxLevel4] } | { __kind: 'Level5'; fields: readonly [MaxLevel5] } | { __kind: 'Css'; fields: readonly [StarbaseLevelInfo] }; export type StarbaseMaxLevelArgs = | { __kind: 'Level0'; fields: readonly [StarbaseLevelInfoArgs] } | { __kind: 'Level1'; fields: readonly [MaxLevel1Args] } | { __kind: 'Level2'; fields: readonly [MaxLevel2Args] } | { __kind: 'Level3'; fields: readonly [MaxLevel3Args] } | { __kind: 'Level4'; fields: readonly [MaxLevel4Args] } | { __kind: 'Level5'; fields: readonly [MaxLevel5Args] } | { __kind: 'Css'; fields: readonly [StarbaseLevelInfoArgs] }; export function getStarbaseMaxLevelEncoder(): Encoder { return getDiscriminatedUnionEncoder([ [ 'Level0', getStructEncoder([ ['fields', getTupleEncoder([getStarbaseLevelInfoEncoder()])], ]), ], [ 'Level1', getStructEncoder([['fields', getTupleEncoder([getMaxLevel1Encoder()])]]), ], [ 'Level2', getStructEncoder([['fields', getTupleEncoder([getMaxLevel2Encoder()])]]), ], [ 'Level3', getStructEncoder([['fields', getTupleEncoder([getMaxLevel3Encoder()])]]), ], [ 'Level4', getStructEncoder([['fields', getTupleEncoder([getMaxLevel4Encoder()])]]), ], [ 'Level5', getStructEncoder([['fields', getTupleEncoder([getMaxLevel5Encoder()])]]), ], [ 'Css', getStructEncoder([ ['fields', getTupleEncoder([getStarbaseLevelInfoEncoder()])], ]), ], ]); } export function getStarbaseMaxLevelDecoder(): Decoder { return getDiscriminatedUnionDecoder([ [ 'Level0', getStructDecoder([ ['fields', getTupleDecoder([getStarbaseLevelInfoDecoder()])], ]), ], [ 'Level1', getStructDecoder([['fields', getTupleDecoder([getMaxLevel1Decoder()])]]), ], [ 'Level2', getStructDecoder([['fields', getTupleDecoder([getMaxLevel2Decoder()])]]), ], [ 'Level3', getStructDecoder([['fields', getTupleDecoder([getMaxLevel3Decoder()])]]), ], [ 'Level4', getStructDecoder([['fields', getTupleDecoder([getMaxLevel4Decoder()])]]), ], [ 'Level5', getStructDecoder([['fields', getTupleDecoder([getMaxLevel5Decoder()])]]), ], [ 'Css', getStructDecoder([ ['fields', getTupleDecoder([getStarbaseLevelInfoDecoder()])], ]), ], ]); } export function getStarbaseMaxLevelCodec(): Codec< StarbaseMaxLevelArgs, StarbaseMaxLevel > { return combineCodec( getStarbaseMaxLevelEncoder(), getStarbaseMaxLevelDecoder(), ); } // Data Enum Helpers. export function starbaseMaxLevel( kind: 'Level0', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelArgs, '__kind', 'Level0' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevel( kind: 'Level1', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelArgs, '__kind', 'Level1' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevel( kind: 'Level2', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelArgs, '__kind', 'Level2' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevel( kind: 'Level3', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelArgs, '__kind', 'Level3' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevel( kind: 'Level4', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelArgs, '__kind', 'Level4' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevel( kind: 'Level5', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelArgs, '__kind', 'Level5' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevel( kind: 'Css', data: GetDiscriminatedUnionVariantContent< StarbaseMaxLevelArgs, '__kind', 'Css' >['fields'], ): GetDiscriminatedUnionVariant; export function starbaseMaxLevel< K extends StarbaseMaxLevelArgs['__kind'], Data, >(kind: K, data?: Data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) }; } export function isStarbaseMaxLevel( kind: K, value: StarbaseMaxLevel, ): value is StarbaseMaxLevel & { __kind: K } { return value.__kind === kind; }