miden_assembly_syntax/ast/instruction/
advice.rs1use core::fmt;
2
3use miden_core::events::SystemEvent;
4
5#[derive(Clone, PartialEq, Eq, Debug)]
14pub enum SystemEventNode {
15 PushMapVal,
16 PushMapValCount,
17 PushMapValN0,
18 PushMapValN4,
19 PushMapValN8,
20 HasMapKey,
21 PushMtNode,
22 InsertMem,
23 InsertHdword,
24 InsertHdwordWithDomain,
25 InsertHqword,
26 InsertHperm,
27 DeferredRegister,
28 DeferredRegisterData,
29 DeferredEvaluate,
30 DeferredEvaluateTag,
31 DeferredEvaluatePayload,
32}
33
34impl From<&SystemEventNode> for SystemEvent {
35 fn from(value: &SystemEventNode) -> Self {
36 use SystemEventNode::*;
37 match value {
38 PushMapVal => Self::MapValueToStack,
39 PushMapValCount => Self::MapValueCountToStack,
40 PushMapValN0 => Self::MapValueToStackN0,
41 PushMapValN4 => Self::MapValueToStackN4,
42 PushMapValN8 => Self::MapValueToStackN8,
43 HasMapKey => Self::HasMapKey,
44 PushMtNode => Self::MerkleNodeToStack,
45 InsertMem => Self::MemToMap,
46 InsertHdword => Self::HdwordToMap,
47 InsertHdwordWithDomain => Self::HdwordToMapWithDomain,
48 InsertHqword => Self::HqwordToMap,
49 InsertHperm => Self::HpermToMap,
50 DeferredRegister => Self::DeferredRegister,
51 DeferredRegisterData => Self::DeferredRegisterData,
52 DeferredEvaluate => Self::DeferredEvaluate,
53 DeferredEvaluateTag => Self::DeferredEvaluateTag,
54 DeferredEvaluatePayload => Self::DeferredEvaluatePayload,
55 }
56 }
57}
58
59impl crate::prettier::PrettyPrint for SystemEventNode {
60 fn render(&self) -> crate::prettier::Document {
61 crate::prettier::display(self)
62 }
63}
64
65impl fmt::Display for SystemEventNode {
66 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
67 match self {
68 Self::PushMapVal => write!(f, "push_mapval"),
69 Self::PushMapValCount => write!(f, "push_mapval_count"),
70 Self::PushMapValN0 => write!(f, "push_mapvaln.0"),
71 Self::PushMapValN4 => write!(f, "push_mapvaln.4"),
72 Self::PushMapValN8 => write!(f, "push_mapvaln.8"),
73 Self::HasMapKey => write!(f, "has_mapkey"),
74 Self::PushMtNode => write!(f, "push_mtnode"),
75 Self::InsertMem => write!(f, "insert_mem"),
76 Self::InsertHdword => write!(f, "insert_hdword"),
77 Self::InsertHdwordWithDomain => write!(f, "insert_hdword_d"),
78 Self::InsertHqword => write!(f, "insert_hqword"),
79 Self::InsertHperm => writeln!(f, "insert_hperm"),
80 Self::DeferredRegister => write!(f, "register_deferred"),
81 Self::DeferredRegisterData => write!(f, "register_deferred_data"),
82 Self::DeferredEvaluate => write!(f, "evaluate_deferred"),
83 Self::DeferredEvaluateTag => write!(f, "evaluate_deferred_tag"),
84 Self::DeferredEvaluatePayload => write!(f, "evaluate_deferred_payload"),
85 }
86 }
87}