diff options
| author | iximeow <me@iximeow.net> | 2020-01-13 19:58:05 -0800 | 
|---|---|---|
| committer | iximeow <me@iximeow.net> | 2020-01-13 20:07:28 -0800 | 
| commit | 9835359ed86e3cb570418bc15234fbb7aca4cee8 (patch) | |
| tree | 9366a4bdefa83aa39591b4acbad9215e73e09833 | |
| parent | bda346a0caac6896fbc90a61d5d3d15dbc4fb79f (diff) | |
add Default impl for Instruction to track yaxpeax-arch
| -rw-r--r-- | src/lib.rs | 8 | ||||
| -rw-r--r-- | test/test.rs | 22 | 
2 files changed, 10 insertions, 20 deletions
@@ -2485,6 +2485,12 @@ impl Opcode {      }  } +impl Default for Instruction { +    fn default() -> Self { +        Instruction::invalid() +    } +} +  impl Instruction {      pub fn operand(&self, i: u8) -> Operand {          assert!(i < 4); @@ -2528,12 +2534,14 @@ impl Instruction {              operands: [OperandSpec::Nothing; 4],          }      } +      pub fn is_invalid(&self) -> bool {          match self.opcode {              Opcode::Invalid => true,              _ => false          }      } +      pub fn segment_override_for_op(&self, op: u8) -> Option<Segment> {          match self.opcode {              Opcode::STOS => { diff --git a/test/test.rs b/test/test.rs index 7726bb7..0ffc1c4 100644 --- a/test/test.rs +++ b/test/test.rs @@ -3,26 +3,8 @@ extern crate yaxpeax_x86;  use std::fmt::Write; -use yaxpeax_arch::Decoder; -use yaxpeax_x86::{Instruction, InstDecoder, decode_one}; - -#[allow(dead_code)] -fn decode(bytes: &[u8]) -> Option<Instruction> { -    let mut instr = Instruction::invalid(); -    match decode_one(&InstDecoder::default(), bytes.iter().map(|x| *x).take(16).collect::<Vec<u8>>(), &mut instr) { -        Ok(()) => Some(instr), -        _ => None -    } -} - -#[allow(dead_code)] -fn decode_as(decoder: &InstDecoder, bytes: &[u8]) -> Option<Instruction> { -    let mut instr = Instruction::invalid(); -    match decode_one(decoder, bytes.iter().map(|x| *x).take(16).collect::<Vec<u8>>(), &mut instr) { -        Ok(()) => Some(instr), -        _ => None -    } -} +use yaxpeax_arch::{Decoder, LengthedInstruction}; +use yaxpeax_x86::{Instruction, InstDecoder};  fn test_invalid(data: &[u8]) {      test_invalid_under(&InstDecoder::default(), data);  | 
