miden_assembly_syntax/ast/instruction/
debug.rs1use core::fmt;
2
3use crate::ast::{ImmU8, ImmU16, ImmU32};
4
5#[derive(Clone, Debug, Eq, PartialEq)]
10pub enum DebugOptions {
11 StackAll,
12 StackTop(ImmU8),
13 MemAll,
14 MemInterval(ImmU32, ImmU32),
15 LocalInterval(ImmU16, ImmU16),
16 LocalRangeFrom(ImmU16),
17 LocalAll,
18 AdvStackTop(ImmU16),
19}
20
21impl crate::prettier::PrettyPrint for DebugOptions {
22 fn render(&self) -> crate::prettier::Document {
23 crate::prettier::display(self)
24 }
25}
26
27impl fmt::Display for DebugOptions {
28 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
29 match self {
30 Self::StackAll => write!(f, "stack"),
31 Self::StackTop(n) => write!(f, "stack.{n}"),
32 Self::MemAll => write!(f, "mem"),
33 Self::MemInterval(n, m) => write!(f, "mem.{n}.{m}"),
34 Self::LocalAll => write!(f, "local"),
35 Self::LocalRangeFrom(start) => write!(f, "local.{start}"),
36 Self::LocalInterval(start, end) => {
37 write!(f, "local.{start}.{end}")
38 },
39 Self::AdvStackTop(n) => write!(f, "adv_stack.{n}"),
40 }
41 }
42}