Skip to main content

codama_nodes/generated/
program_node.rs

1use 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    // Data.
11    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    // Children.
20    pub accounts: Vec<AccountNode>,
21    pub instructions: Vec<InstructionNode>,
22    pub defined_types: Vec<DefinedTypeNode>,
23    pub pdas: Vec<PdaNode>,
24    pub events: Vec<EventNode>,
25    pub errors: Vec<ErrorNode>,
26    pub constants: Vec<ConstantNode>,
27}
28
29impl HasName for ProgramNode {
30    fn name(&self) -> &CamelCaseString {
31        &self.name
32    }
33}