IdlBuild

pub trait IdlBuild {
    // Provided methods
    fn create_type() -> Option<IdlTypeDef> { ... }
    fn insert_types(_types: &mut BTreeMap<String, IdlTypeDef>) { ... }
    fn get_full_path() -> String { ... }
}
Expand description

A trait that types must implement in order to include the type in the IDL definition.

This trait is automatically implemented for Anchor all types that use the AnchorSerialize proc macro. Note that manually implementing the AnchorSerialize trait does NOT have the same effect.

Types that don’t implement this trait will cause a compile error during the IDL generation.

The default implementation of the trait allows the program to compile but the type does NOT get included in the IDL.

Provided Methods§

Source

fn create_type() -> Option<IdlTypeDef>

Create an IDL type definition for the type.

The type is only included in the IDL if this method returns Some.

Source

fn insert_types(_types: &mut BTreeMap<String, IdlTypeDef>)

Insert all types that are included in the current type definition to the given map.

Source

fn get_full_path() -> String

Get the full module path of the type.

The full path will be used in the case of a conflicting type definition, e.g. when there are multiple structs with the same name.

The default implementation covers most cases.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl IdlBuild for QueueType

Source§

impl IdlBuild for TreeType

Source§

impl IdlBuild for MerkleTreeEvent

Source§

impl IdlBuild for CompressedAccount

Source§

impl IdlBuild for CompressedAccountData

Source§

impl IdlBuild for CompressedAccountWithMerkleContext

Source§

impl IdlBuild for InCompressedAccount

Source§

impl IdlBuild for InCompressedAccountWithMerkleContext

Source§

impl IdlBuild for MerkleContext

Source§

impl IdlBuild for PackedCompressedAccountWithMerkleContext

Source§

impl IdlBuild for PackedInCompressedAccountWithMerkleContext

Source§

impl IdlBuild for PackedMerkleContext

Source§

impl IdlBuild for PackedReadOnlyCompressedAccount

Source§

impl IdlBuild for ReadOnlyCompressedAccount

Source§

impl IdlBuild for CompressedProof

Source§

impl IdlBuild for ValidityProof

Source§

impl IdlBuild for CompressedCpiContext

Source§

impl IdlBuild for InstructionDataInvoke

Source§

impl IdlBuild for NewAddressParams

Source§

impl IdlBuild for NewAddressParamsAssigned

Source§

impl IdlBuild for NewAddressParamsAssignedPacked

Source§

impl IdlBuild for NewAddressParamsPacked

Source§

impl IdlBuild for OutputCompressedAccountWithContext

Source§

impl IdlBuild for OutputCompressedAccountWithPackedContext

Source§

impl IdlBuild for PackedReadOnlyAddress

Source§

impl IdlBuild for ReadOnlyAddress

Source§

impl IdlBuild for InstructionDataInvokeCpi

Source§

impl IdlBuild for CompressedAccountInfo

Source§

impl IdlBuild for InAccountInfo

Source§

impl IdlBuild for InstructionDataInvokeCpiWithAccountInfo

Source§

impl IdlBuild for OutAccountInfo

Source§

impl IdlBuild for InAccount

Source§

impl IdlBuild for InstructionDataInvokeCpiWithReadOnly

Source§

impl IdlBuild for Pubkey

Source§

impl IdlBuild for AccessMetadata

Source§

impl IdlBuild for BatchEvent

Source§

impl IdlBuild for ChangelogEvent

Source§

impl IdlBuild for IndexedMerkleTreeEvent

Source§

impl IdlBuild for MerkleTreeEvents

Source§

impl IdlBuild for NullifierEvent

Source§

impl IdlBuild for PathNode

Source§

impl IdlBuild for MerkleTreeMetadata

Source§

impl IdlBuild for QueueMetadata

Source§

impl IdlBuild for RolloverMetadata

Source§

impl<I> IdlBuild for IndexedMerkleTreeUpdate<I>
where I: Clone,

Source§

impl<I> IdlBuild for RawIndexedElement<I>
where I: Clone,

Implementors§

Source§

impl IdlBuild for account_compression::accounts::BatchAppend

Source§

impl IdlBuild for account_compression::accounts::BatchNullify

Source§

impl IdlBuild for account_compression::accounts::BatchUpdateAddressTree

Source§

impl IdlBuild for account_compression::accounts::DeregisterProgram

Source§

impl IdlBuild for GenericInstruction

Source§

impl IdlBuild for account_compression::accounts::InitializeAddressMerkleTreeAndQueue

Source§

impl IdlBuild for account_compression::accounts::InitializeBatchedAddressMerkleTree

Source§

impl IdlBuild for InitializeBatchedStateMerkleTreeAndQueue

Source§

impl IdlBuild for account_compression::accounts::InitializeGroupAuthority

Source§

impl IdlBuild for account_compression::accounts::InitializeStateMerkleTreeAndNullifierQueue

Source§

impl IdlBuild for account_compression::accounts::MigrateState

Source§

impl IdlBuild for account_compression::accounts::NullifyLeaves

Source§

impl IdlBuild for account_compression::accounts::RegisterProgramToGroup

Source§

impl IdlBuild for account_compression::accounts::ResizeRegisteredProgramPda

Source§

impl IdlBuild for account_compression::accounts::RolloverAddressMerkleTreeAndQueue

Source§

impl IdlBuild for account_compression::accounts::RolloverBatchedAddressMerkleTree

Source§

impl IdlBuild for account_compression::accounts::RolloverBatchedStateMerkleTree

Source§

impl IdlBuild for account_compression::accounts::RolloverStateMerkleTreeAndNullifierQueue

Source§

impl IdlBuild for account_compression::accounts::UpdateAddressMerkleTree

Source§

impl IdlBuild for account_compression::accounts::UpdateGroupAuthority

Source§

impl IdlBuild for account_compression::instruction::BatchAppend

Source§

impl IdlBuild for account_compression::instruction::BatchNullify

Source§

impl IdlBuild for account_compression::instruction::BatchUpdateAddressTree

Source§

impl IdlBuild for account_compression::instruction::DeregisterProgram

Source§

impl IdlBuild for account_compression::instruction::InitializeAddressMerkleTreeAndQueue

Source§

impl IdlBuild for account_compression::instruction::InitializeBatchedAddressMerkleTree

Source§

impl IdlBuild for InitializeBatchedStateMerkleTree

Source§

impl IdlBuild for account_compression::instruction::InitializeGroupAuthority

Source§

impl IdlBuild for account_compression::instruction::InitializeStateMerkleTreeAndNullifierQueue

Source§

impl IdlBuild for InsertIntoQueues

Source§

impl IdlBuild for account_compression::instruction::MigrateState

Source§

impl IdlBuild for account_compression::instruction::NullifyLeaves

Source§

impl IdlBuild for account_compression::instruction::RegisterProgramToGroup

Source§

impl IdlBuild for account_compression::instruction::ResizeRegisteredProgramPda

Source§

impl IdlBuild for account_compression::instruction::RolloverAddressMerkleTreeAndQueue

Source§

impl IdlBuild for account_compression::instruction::RolloverBatchedAddressMerkleTree

Source§

impl IdlBuild for account_compression::instruction::RolloverBatchedStateMerkleTree

Source§

impl IdlBuild for account_compression::instruction::RolloverStateMerkleTreeAndNullifierQueue

Source§

impl IdlBuild for account_compression::instruction::UpdateAddressMerkleTree

Source§

impl IdlBuild for account_compression::instruction::UpdateGroupAuthority

Source§

impl IdlBuild for AddressMerkleTreeConfig

Source§

impl IdlBuild for NullifierQueueConfig

Source§

impl IdlBuild for StateMerkleTreeConfig

Source§

impl IdlBuild for MigrateLeafParams

Source§

impl IdlBuild for RegisteredProgram

Source§

impl IdlBuild for RegisteredProgramV1

Source§

impl IdlBuild for AddressMerkleTreeAccount

Source§

impl IdlBuild for GroupAuthority

Source§

impl IdlBuild for StateMerkleTreeAccount

Source§

impl IdlBuild for QueueAccount

Source§

impl IdlBuild for ProgramData