#[non_exhaustive]pub enum Data {
Byte(u8),
Word(u16),
Long(u32),
}Expand description
Raw parser data, kept separate from valid instructions and unknown words.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Implementations§
Source§impl Data
impl Data
Sourcepub const fn display(&self) -> DisplayData<'_>
pub const fn display(&self) -> DisplayData<'_>
Render a raw parser data item.
Examples found in repository?
examples/disasm_text.rs (line 27)
7fn main() {
8 let args: Vec<String> = std::env::args().collect();
9 let base_address = args.get(1).map_or(0, |value| {
10 let value = value.strip_prefix("0x").unwrap_or(value);
11 u32::from_str_radix(value, 16).expect("base address must be hexadecimal")
12 });
13
14 let mut bytes = Vec::new();
15 std::io::stdin().read_to_end(&mut bytes).expect("read stdin");
16
17 let format = FormatOptions::default();
18 let mut parser =
19 Parser::new(&bytes, ParseMode::Instruction, ParseEndian::Little, DecodeOptions::default());
20 parser.set_address(base_address);
21
22 for item in parser {
23 match item.value {
24 ParsedValue::Instruction { result, .. } => {
25 println!("{:08x}: {}", item.address, result.display_at(item.address, &format));
26 }
27 ParsedValue::Data(data) => println!("{:08x}: {}", item.address, data.display()),
28 _ => {}
29 }
30 }
31}Trait Implementations§
impl Copy for Data
impl Eq for Data
impl StructuralPartialEq for Data
Auto Trait Implementations§
impl Freeze for Data
impl RefUnwindSafe for Data
impl Send for Data
impl Sync for Data
impl Unpin for Data
impl UnsafeUnpin for Data
impl UnwindSafe for Data
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more