codama_nodes/shared/
instruction_input_value_node.rs1use crate::{
2 AccountBumpValueNode, AccountValueNode, ArgumentValueNode, ArrayValueNode, BooleanValueNode,
3 BytesValueNode, ConditionalValueNode, ConstantValueNode, EnumValueNode, IdentityValueNode,
4 MapValueNode, NoneValueNode, NumberValueNode, PayerValueNode, PdaValueNode, ProgramIdValueNode,
5 ProgramLinkNode, PublicKeyValueNode, ResolverValueNode, SetValueNode, SomeValueNode,
6 StringValueNode, StructValueNode, TupleValueNode, ValueNode,
7};
8use codama_nodes_derive::node_union;
9
10#[node_union]
11pub enum InstructionInputValueNode {
12 Account(AccountValueNode),
14 AccountBump(AccountBumpValueNode),
15 Argument(ArgumentValueNode),
16 Conditional(ConditionalValueNode),
17 Identity(IdentityValueNode),
18 Payer(PayerValueNode),
19 Pda(PdaValueNode),
20 ProgramId(ProgramIdValueNode),
21 Resolver(ResolverValueNode),
22
23 Array(ArrayValueNode),
25 Boolean(BooleanValueNode),
26 Bytes(BytesValueNode),
27 Constant(ConstantValueNode),
28 Enum(EnumValueNode),
29 Map(MapValueNode),
30 None(NoneValueNode),
31 Number(NumberValueNode),
32 PublicKey(PublicKeyValueNode),
33 Set(SetValueNode),
34 Some(SomeValueNode),
35 String(StringValueNode),
36 Struct(StructValueNode),
37 Tuple(TupleValueNode),
38
39 ProgramLink(ProgramLinkNode),
41}
42
43impl From<ValueNode> for InstructionInputValueNode {
44 fn from(value: ValueNode) -> Self {
45 match value {
46 ValueNode::Array(value) => Self::Array(value),
47 ValueNode::Boolean(value) => Self::Boolean(value),
48 ValueNode::Bytes(value) => Self::Bytes(value),
49 ValueNode::Constant(value) => Self::Constant(value),
50 ValueNode::Enum(value) => Self::Enum(value),
51 ValueNode::Map(value) => Self::Map(value),
52 ValueNode::None(value) => Self::None(value),
53 ValueNode::Number(value) => Self::Number(value),
54 ValueNode::PublicKey(value) => Self::PublicKey(value),
55 ValueNode::Set(value) => Self::Set(value),
56 ValueNode::Some(value) => Self::Some(value),
57 ValueNode::String(value) => Self::String(value),
58 ValueNode::Struct(value) => Self::Struct(value),
59 ValueNode::Tuple(value) => Self::Tuple(value),
60 }
61 }
62}