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 InsertHqword,
25 InsertCompress,
26 DeferredRegister,
27 DeferredRegisterData,
28 DeferredEvaluate,
29 DeferredEvaluateFrame,
30 DeferredEvaluatePayload,
31 DeferredExportWitness,
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 InsertHqword => Self::HqwordToMap,
48 InsertCompress => Self::CompressToMap,
49 DeferredRegister => Self::DeferredRegister,
50 DeferredRegisterData => Self::DeferredRegisterData,
51 DeferredEvaluate => Self::DeferredEvaluate,
52 DeferredEvaluateFrame => Self::DeferredEvaluateFrame,
53 DeferredEvaluatePayload => Self::DeferredEvaluatePayload,
54 DeferredExportWitness => Self::DeferredExportWitness,
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::InsertHqword => write!(f, "insert_hqword"),
78 Self::InsertCompress => write!(f, "insert_compress"),
79 Self::DeferredRegister => write!(f, "register_deferred"),
80 Self::DeferredRegisterData => write!(f, "register_deferred_data"),
81 Self::DeferredEvaluate => write!(f, "evaluate_deferred"),
82 Self::DeferredEvaluateFrame => write!(f, "evaluate_deferred_frame"),
83 Self::DeferredEvaluatePayload => write!(f, "evaluate_deferred_payload"),
84 Self::DeferredExportWitness => write!(f, "export_deferred_witness"),
85 }
86 }
87}