codama_nodes/link_nodes/
link_node.rs

1use crate::{
2    AccountLinkNode, DefinedTypeLinkNode, InstructionAccountLinkNode, InstructionArgumentLinkNode,
3    InstructionLinkNode, PdaLinkNode, ProgramLinkNode,
4};
5use codama_nodes_derive::node_union;
6
7#[node_union]
8pub enum LinkNode {
9    Account(AccountLinkNode),
10    DefinedType(DefinedTypeLinkNode),
11    Instruction(InstructionLinkNode),
12    InstructionAccount(InstructionAccountLinkNode),
13    InstructionArgument(InstructionArgumentLinkNode),
14    Pda(PdaLinkNode),
15    Program(ProgramLinkNode),
16}
17
18#[cfg(test)]
19mod tests {
20    use super::*;
21    use crate::HasKind;
22
23    #[test]
24    fn kind() {
25        let node: LinkNode = ProgramLinkNode::new("myProgram").into();
26        assert_eq!(node.kind(), "programLinkNode");
27    }
28}