/** * This code was GENERATED using the solita package. * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality. * * See: https://github.com/metaplex-foundation/solita */ import * as beet from '@convergence-rfq/beet' /** * This type is used to derive the {@link SettlementTypeMetadata} type as well as the de/serializer. * However don't refer to it in your code but use the {@link SettlementTypeMetadata} type instead. * * @category userTypes * @category enums * @category generated * @private */ export type SettlementTypeMetadataRecord = { Instrument: { instrumentIndex: number } PrintTrade: { instrumentType: number } } /** * Union type respresenting the SettlementTypeMetadata data enum defined in Rust. * * NOTE: that it includes a `__kind` property which allows to narrow types in * switch/if statements. * Additionally `isSettlementTypeMetadata*` type guards are exposed below to narrow to a specific variant. * * @category userTypes * @category enums * @category generated */ export type SettlementTypeMetadata = beet.DataEnumKeyAsKind export const isSettlementTypeMetadataInstrument = ( x: SettlementTypeMetadata ): x is SettlementTypeMetadata & { __kind: 'Instrument' } => x.__kind === 'Instrument' export const isSettlementTypeMetadataPrintTrade = ( x: SettlementTypeMetadata ): x is SettlementTypeMetadata & { __kind: 'PrintTrade' } => x.__kind === 'PrintTrade' /** * @category userTypes * @category generated */ export const settlementTypeMetadataBeet = beet.dataEnum([ [ 'Instrument', new beet.BeetArgsStruct( [['instrumentIndex', beet.u8]], 'SettlementTypeMetadataRecord["Instrument"]' ), ], [ 'PrintTrade', new beet.BeetArgsStruct( [['instrumentType', beet.u8]], 'SettlementTypeMetadataRecord["PrintTrade"]' ), ], ]) as beet.FixableBeet