codama_nodes/generated/
program_node.rs1use crate::{
2 AccountNode, CamelCaseString, ConstantNode, DefinedTypeNode, Docs, ErrorNode, EventNode,
3 HasName, InstructionNode, PdaNode, ProgramOrigin,
4};
5use codama_nodes_derive::node;
6
7#[node]
8#[derive(Default)]
9pub struct ProgramNode {
10 pub name: CamelCaseString,
12 pub public_key: String,
13 pub version: String,
14 #[serde(skip_serializing_if = "crate::is_default")]
15 pub origin: Option<ProgramOrigin>,
16 #[serde(default, skip_serializing_if = "crate::is_default")]
17 pub docs: Docs,
18
19 #[serde(default, skip_serializing_if = "crate::is_default")]
21 pub accounts: Vec<AccountNode>,
22 #[serde(default, skip_serializing_if = "crate::is_default")]
23 pub instructions: Vec<InstructionNode>,
24 #[serde(default, skip_serializing_if = "crate::is_default")]
25 pub defined_types: Vec<DefinedTypeNode>,
26 #[serde(default, skip_serializing_if = "crate::is_default")]
27 pub pdas: Vec<PdaNode>,
28 #[serde(default, skip_serializing_if = "crate::is_default")]
29 pub events: Vec<EventNode>,
30 #[serde(default, skip_serializing_if = "crate::is_default")]
31 pub errors: Vec<ErrorNode>,
32 #[serde(default, skip_serializing_if = "crate::is_default")]
33 pub constants: Vec<ConstantNode>,
34}
35
36impl HasName for ProgramNode {
37 fn name(&self) -> &CamelCaseString {
38 &self.name
39 }
40}