Skip to main content

codama_nodes/generated/
instruction_node.rs

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