Skip to main content

codama_nodes/generated/
instruction_node.rs

1use crate::{
2    CamelCaseString, DiscriminatorNode, Docs, HasName, InstructionAccountNode,
3    InstructionArgumentNode, InstructionByteDeltaNode, InstructionRemainingAccountsNode,
4    InstructionStatusNode, OptionalAccountStrategy,
5};
6use codama_nodes_derive::node;
7
8#[node]
9#[derive(Default)]
10pub struct InstructionNode {
11    // Data.
12    pub name: CamelCaseString,
13    #[serde(default, skip_serializing_if = "crate::is_default")]
14    pub docs: Docs,
15    #[serde(skip_serializing_if = "crate::is_default")]
16    pub optional_account_strategy: Option<OptionalAccountStrategy>,
17
18    // Children.
19    pub accounts: Vec<InstructionAccountNode>,
20    pub arguments: Vec<InstructionArgumentNode>,
21    #[serde(default, skip_serializing_if = "crate::is_default")]
22    pub extra_arguments: Vec<InstructionArgumentNode>,
23    #[serde(default, skip_serializing_if = "crate::is_default")]
24    pub remaining_accounts: Vec<InstructionRemainingAccountsNode>,
25    #[serde(default, skip_serializing_if = "crate::is_default")]
26    pub byte_deltas: Vec<InstructionByteDeltaNode>,
27    #[serde(default, skip_serializing_if = "crate::is_default")]
28    pub discriminators: Vec<DiscriminatorNode>,
29    #[serde(skip_serializing_if = "crate::is_default")]
30    pub status: Option<InstructionStatusNode>,
31    #[serde(default, skip_serializing_if = "crate::is_default")]
32    pub sub_instructions: Vec<InstructionNode>,
33}
34
35impl HasName for InstructionNode {
36    fn name(&self) -> &CamelCaseString {
37        &self.name
38    }
39}