#[non_exhaustive]pub enum DecodeResult {
Instruction(Ins),
Unknown(u16),
}Expand description
Result of decoding one 16-bit word.
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.
Instruction(Ins)
A valid instruction for the selected architecture.
Unknown(u16)
The original word when no valid encoding matched.
Implementations§
Source§impl DecodeResult
impl DecodeResult
Sourcepub const fn display_at<'a>(
&'a self,
address: u32,
options: &'a FormatOptions,
) -> DisplayDecode<'a>
pub const fn display_at<'a>( &'a self, address: u32, options: &'a FormatOptions, ) -> DisplayDecode<'a>
Render a decode result at address.
Examples found in repository?
examples/disasm_text.rs (line 25)
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}Source§impl DecodeResult
impl DecodeResult
Sourcepub const fn instruction(&self) -> Option<&Ins>
pub const fn instruction(&self) -> Option<&Ins>
Borrow the valid instruction, if the word decoded.
Sourcepub const fn unknown_word(&self) -> Option<u16>
pub const fn unknown_word(&self) -> Option<u16>
Return the original unknown word, if decoding failed.
Trait Implementations§
Source§impl Clone for DecodeResult
impl Clone for DecodeResult
Source§fn clone(&self) -> DecodeResult
fn clone(&self) -> DecodeResult
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for DecodeResult
Source§impl Debug for DecodeResult
impl Debug for DecodeResult
impl Eq for DecodeResult
Source§impl PartialEq for DecodeResult
impl PartialEq for DecodeResult
impl StructuralPartialEq for DecodeResult
Auto Trait Implementations§
impl Freeze for DecodeResult
impl RefUnwindSafe for DecodeResult
impl Send for DecodeResult
impl Sync for DecodeResult
impl Unpin for DecodeResult
impl UnsafeUnpin for DecodeResult
impl UnwindSafe for DecodeResult
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