/** * 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 { getClaimStakeTransferDecoder, getClaimStakeTransferEncoder, getDestroyedDecoder, getDestroyedEncoder, getDockedDecoder, getDockedEncoder, getIdleDecoder, getIdleEncoder, getMineAsteroidDecoder, getMineAsteroidEncoder, getMoveSubwarpDecoder, getMoveSubwarpEncoder, getMoveWarpDecoder, getMoveWarpEncoder, getRespawnDecoder, getRespawnEncoder, type ClaimStakeTransfer, type ClaimStakeTransferArgs, type Destroyed, type DestroyedArgs, type Docked, type DockedArgs, type Idle, type IdleArgs, type MineAsteroid, type MineAsteroidArgs, type MoveSubwarp, type MoveSubwarpArgs, type MoveWarp, type MoveWarpArgs, type Respawn, type RespawnArgs, } from '.'; export type FleetState = | { __kind: 'Idle'; fields: readonly [Idle] } | { __kind: 'ClaimStakeTransfer'; fields: readonly [ClaimStakeTransfer] } | { __kind: 'Destroyed'; fields: readonly [Destroyed] } | { __kind: 'Docked'; fields: readonly [Docked] } | { __kind: 'MineAsteroid'; fields: readonly [MineAsteroid] } | { __kind: 'MoveWarp'; fields: readonly [MoveWarp] } | { __kind: 'MoveSubwarp'; fields: readonly [MoveSubwarp] } | { __kind: 'Respawn'; fields: readonly [Respawn] }; export type FleetStateArgs = | { __kind: 'Idle'; fields: readonly [IdleArgs] } | { __kind: 'ClaimStakeTransfer'; fields: readonly [ClaimStakeTransferArgs] } | { __kind: 'Destroyed'; fields: readonly [DestroyedArgs] } | { __kind: 'Docked'; fields: readonly [DockedArgs] } | { __kind: 'MineAsteroid'; fields: readonly [MineAsteroidArgs] } | { __kind: 'MoveWarp'; fields: readonly [MoveWarpArgs] } | { __kind: 'MoveSubwarp'; fields: readonly [MoveSubwarpArgs] } | { __kind: 'Respawn'; fields: readonly [RespawnArgs] }; export function getFleetStateEncoder(): Encoder { return getDiscriminatedUnionEncoder([ [ 'Idle', getStructEncoder([['fields', getTupleEncoder([getIdleEncoder()])]]), ], [ 'ClaimStakeTransfer', getStructEncoder([ ['fields', getTupleEncoder([getClaimStakeTransferEncoder()])], ]), ], [ 'Destroyed', getStructEncoder([['fields', getTupleEncoder([getDestroyedEncoder()])]]), ], [ 'Docked', getStructEncoder([['fields', getTupleEncoder([getDockedEncoder()])]]), ], [ 'MineAsteroid', getStructEncoder([ ['fields', getTupleEncoder([getMineAsteroidEncoder()])], ]), ], [ 'MoveWarp', getStructEncoder([['fields', getTupleEncoder([getMoveWarpEncoder()])]]), ], [ 'MoveSubwarp', getStructEncoder([ ['fields', getTupleEncoder([getMoveSubwarpEncoder()])], ]), ], [ 'Respawn', getStructEncoder([['fields', getTupleEncoder([getRespawnEncoder()])]]), ], ]); } export function getFleetStateDecoder(): Decoder { return getDiscriminatedUnionDecoder([ [ 'Idle', getStructDecoder([['fields', getTupleDecoder([getIdleDecoder()])]]), ], [ 'ClaimStakeTransfer', getStructDecoder([ ['fields', getTupleDecoder([getClaimStakeTransferDecoder()])], ]), ], [ 'Destroyed', getStructDecoder([['fields', getTupleDecoder([getDestroyedDecoder()])]]), ], [ 'Docked', getStructDecoder([['fields', getTupleDecoder([getDockedDecoder()])]]), ], [ 'MineAsteroid', getStructDecoder([ ['fields', getTupleDecoder([getMineAsteroidDecoder()])], ]), ], [ 'MoveWarp', getStructDecoder([['fields', getTupleDecoder([getMoveWarpDecoder()])]]), ], [ 'MoveSubwarp', getStructDecoder([ ['fields', getTupleDecoder([getMoveSubwarpDecoder()])], ]), ], [ 'Respawn', getStructDecoder([['fields', getTupleDecoder([getRespawnDecoder()])]]), ], ]); } export function getFleetStateCodec(): Codec { return combineCodec(getFleetStateEncoder(), getFleetStateDecoder()); } // Data Enum Helpers. export function fleetState( kind: 'Idle', data: GetDiscriminatedUnionVariantContent< FleetStateArgs, '__kind', 'Idle' >['fields'], ): GetDiscriminatedUnionVariant; export function fleetState( kind: 'ClaimStakeTransfer', data: GetDiscriminatedUnionVariantContent< FleetStateArgs, '__kind', 'ClaimStakeTransfer' >['fields'], ): GetDiscriminatedUnionVariant; export function fleetState( kind: 'Destroyed', data: GetDiscriminatedUnionVariantContent< FleetStateArgs, '__kind', 'Destroyed' >['fields'], ): GetDiscriminatedUnionVariant; export function fleetState( kind: 'Docked', data: GetDiscriminatedUnionVariantContent< FleetStateArgs, '__kind', 'Docked' >['fields'], ): GetDiscriminatedUnionVariant; export function fleetState( kind: 'MineAsteroid', data: GetDiscriminatedUnionVariantContent< FleetStateArgs, '__kind', 'MineAsteroid' >['fields'], ): GetDiscriminatedUnionVariant; export function fleetState( kind: 'MoveWarp', data: GetDiscriminatedUnionVariantContent< FleetStateArgs, '__kind', 'MoveWarp' >['fields'], ): GetDiscriminatedUnionVariant; export function fleetState( kind: 'MoveSubwarp', data: GetDiscriminatedUnionVariantContent< FleetStateArgs, '__kind', 'MoveSubwarp' >['fields'], ): GetDiscriminatedUnionVariant; export function fleetState( kind: 'Respawn', data: GetDiscriminatedUnionVariantContent< FleetStateArgs, '__kind', 'Respawn' >['fields'], ): GetDiscriminatedUnionVariant; export function fleetState( kind: K, data?: Data, ) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) }; } export function isFleetState( kind: K, value: FleetState, ): value is FleetState & { __kind: K } { return value.__kind === kind; }