codama_nodes/generated/
instruction_node.rs1use 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 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 #[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}