Simulator

Struct Simulator 

Source
pub struct Simulator<'a, B, T: Tracer = ()> { /* private fields */ }

Implementations§

Source§

impl<'a, B, T> Simulator<'a, B, T>
where T: Tracer, B: BitnessT,

Source

pub fn new( code: &'a [u8], isa: InstructionSetKind, cache_model: CacheModel, tracer: T, ) -> Self

Source

pub fn set_force_branch_is_cheap(&mut self, value: Option<bool>)

Trait Implementations§

Source§

impl<'a, B, T> GasVisitorT for Simulator<'a, B, T>
where B: BitnessT, T: Tracer,

Source§

impl<'a, B, T> ParsingVisitor for Simulator<'a, B, T>
where B: BitnessT, T: Tracer,

Source§

type ReturnTy = ()

Source§

fn xor( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn and( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn or( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn add_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn sub_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn add_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn sub_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn xor_imm( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, _imm: u32, ) -> Self::ReturnTy

Source§

fn and_imm( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, _imm: u32, ) -> Self::ReturnTy

Source§

fn or_imm( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, _imm: u32, ) -> Self::ReturnTy

Source§

fn add_imm_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, _imm: u32, ) -> Self::ReturnTy

Source§

fn shift_logical_right_imm_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn shift_arithmetic_right_imm_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn shift_logical_left_imm_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn rotate_right_imm_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _c: u32, ) -> Self::ReturnTy

Source§

fn reverse_byte( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, ) -> Self::ReturnTy

Source§

fn add_imm_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, _imm: u32, ) -> Self::ReturnTy

Source§

fn shift_logical_right_imm_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn shift_arithmetic_right_imm_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn shift_logical_left_imm_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn rotate_right_imm_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _c: u32, ) -> Self::ReturnTy

Source§

fn count_leading_zero_bits_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, ) -> Self::ReturnTy

Source§

fn count_leading_zero_bits_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, ) -> Self::ReturnTy

Source§

fn count_set_bits_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, ) -> Self::ReturnTy

Source§

fn count_set_bits_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, ) -> Self::ReturnTy

Source§

fn sign_extend_8( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, ) -> Self::ReturnTy

Source§

fn sign_extend_16( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, ) -> Self::ReturnTy

Source§

fn zero_extend_16( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, ) -> Self::ReturnTy

Source§

fn count_trailing_zero_bits_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, ) -> Self::ReturnTy

Source§

fn count_trailing_zero_bits_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, ) -> Self::ReturnTy

Source§

fn shift_logical_right_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn shift_arithmetic_right_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn shift_logical_left_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn rotate_left_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn rotate_right_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn shift_logical_right_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn shift_arithmetic_right_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn shift_logical_left_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn rotate_left_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn rotate_right_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn shift_logical_right_imm_alt_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s2: RawReg, _s1: u32, ) -> Self::ReturnTy

Source§

fn shift_arithmetic_right_imm_alt_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s2: RawReg, _s1: u32, ) -> Self::ReturnTy

Source§

fn shift_logical_left_imm_alt_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s2: RawReg, _s1: u32, ) -> Self::ReturnTy

Source§

fn rotate_right_imm_alt_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, _c: u32, ) -> Self::ReturnTy

Source§

fn shift_logical_right_imm_alt_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s2: RawReg, _s1: u32, ) -> Self::ReturnTy

Source§

fn shift_arithmetic_right_imm_alt_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s2: RawReg, _s1: u32, ) -> Self::ReturnTy

Source§

fn shift_logical_left_imm_alt_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s2: RawReg, _s1: u32, ) -> Self::ReturnTy

Source§

fn rotate_right_imm_alt_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, _c: u32, ) -> Self::ReturnTy

Source§

fn set_less_than_unsigned( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn set_less_than_signed( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn set_less_than_unsigned_imm( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn set_less_than_signed_imm( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn set_greater_than_unsigned_imm( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn set_greater_than_signed_imm( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn cmov_if_zero( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, c: RawReg, ) -> Self::ReturnTy

Source§

fn cmov_if_not_zero( &mut self, _offset: u32, _args_length: u32, d: RawReg, s: RawReg, c: RawReg, ) -> Self::ReturnTy

Source§

fn cmov_if_zero_imm( &mut self, _offset: u32, _args_length: u32, d: RawReg, c: RawReg, _s: u32, ) -> Self::ReturnTy

Source§

fn cmov_if_not_zero_imm( &mut self, _offset: u32, _args_length: u32, d: RawReg, c: RawReg, _s: u32, ) -> Self::ReturnTy

Source§

fn maximum( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn maximum_unsigned( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn minimum( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn minimum_unsigned( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn load_indirect_u8( &mut self, _offset: u32, _args_length: u32, dst: RawReg, base: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_indirect_i8( &mut self, _offset: u32, _args_length: u32, dst: RawReg, base: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_indirect_u16( &mut self, _offset: u32, _args_length: u32, dst: RawReg, base: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_indirect_i16( &mut self, _offset: u32, _args_length: u32, dst: RawReg, base: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_indirect_u32( &mut self, _offset: u32, _args_length: u32, dst: RawReg, base: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_indirect_i32( &mut self, _offset: u32, _args_length: u32, dst: RawReg, base: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_indirect_u64( &mut self, _offset: u32, _args_length: u32, dst: RawReg, base: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_u8( &mut self, _offset: u32, _args_length: u32, dst: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_i8( &mut self, _offset: u32, _args_length: u32, dst: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_u16( &mut self, _offset: u32, _args_length: u32, dst: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_i16( &mut self, _offset: u32, _args_length: u32, dst: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_u32( &mut self, _offset: u32, _args_length: u32, dst: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_i32( &mut self, _offset: u32, _args_length: u32, dst: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn load_u64( &mut self, _offset: u32, _args_length: u32, dst: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn store_imm_indirect_u8( &mut self, _offset: u32, _args_length: u32, base: RawReg, offset: u32, _value: u32, ) -> Self::ReturnTy

Source§

fn store_imm_indirect_u16( &mut self, _offset: u32, _args_length: u32, base: RawReg, offset: u32, _value: u32, ) -> Self::ReturnTy

Source§

fn store_imm_indirect_u32( &mut self, _offset: u32, _args_length: u32, base: RawReg, offset: u32, _value: u32, ) -> Self::ReturnTy

Source§

fn store_imm_indirect_u64( &mut self, _offset: u32, _args_length: u32, base: RawReg, offset: u32, _value: u32, ) -> Self::ReturnTy

Source§

fn store_indirect_u8( &mut self, _offset: u32, _args_length: u32, src: RawReg, base: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn store_indirect_u16( &mut self, _offset: u32, _args_length: u32, src: RawReg, base: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn store_indirect_u32( &mut self, _offset: u32, _args_length: u32, src: RawReg, base: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn store_indirect_u64( &mut self, _offset: u32, _args_length: u32, src: RawReg, base: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn store_imm_u8( &mut self, _offset: u32, _args_length: u32, offset: u32, _value: u32, ) -> Self::ReturnTy

Source§

fn store_imm_u16( &mut self, _offset: u32, _args_length: u32, offset: u32, _value: u32, ) -> Self::ReturnTy

Source§

fn store_imm_u32( &mut self, _offset: u32, _args_length: u32, offset: u32, _value: u32, ) -> Self::ReturnTy

Source§

fn store_imm_u64( &mut self, _offset: u32, _args_length: u32, offset: u32, _value: u32, ) -> Self::ReturnTy

Source§

fn store_u8( &mut self, _offset: u32, _args_length: u32, src: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn store_u16( &mut self, _offset: u32, _args_length: u32, src: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn store_u32( &mut self, _offset: u32, _args_length: u32, src: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn store_u64( &mut self, _offset: u32, _args_length: u32, src: RawReg, offset: u32, ) -> Self::ReturnTy

Source§

fn branch_less_unsigned( &mut self, offset: u32, args_length: u32, s1: RawReg, s2: RawReg, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_less_signed( &mut self, offset: u32, args_length: u32, s1: RawReg, s2: RawReg, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_greater_or_equal_unsigned( &mut self, offset: u32, args_length: u32, s1: RawReg, s2: RawReg, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_greater_or_equal_signed( &mut self, offset: u32, args_length: u32, s1: RawReg, s2: RawReg, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_eq( &mut self, offset: u32, args_length: u32, s1: RawReg, s2: RawReg, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_not_eq( &mut self, offset: u32, args_length: u32, s1: RawReg, s2: RawReg, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_eq_imm( &mut self, offset: u32, args_length: u32, s1: RawReg, _s2: u32, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_not_eq_imm( &mut self, offset: u32, args_length: u32, s1: RawReg, _s2: u32, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_less_unsigned_imm( &mut self, offset: u32, args_length: u32, s1: RawReg, _s2: u32, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_less_signed_imm( &mut self, offset: u32, args_length: u32, s1: RawReg, _s2: u32, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_greater_or_equal_unsigned_imm( &mut self, offset: u32, args_length: u32, s1: RawReg, _s2: u32, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_greater_or_equal_signed_imm( &mut self, offset: u32, args_length: u32, s1: RawReg, _s2: u32, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_less_or_equal_unsigned_imm( &mut self, offset: u32, args_length: u32, s1: RawReg, _s2: u32, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_less_or_equal_signed_imm( &mut self, offset: u32, args_length: u32, s1: RawReg, _s2: u32, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_greater_unsigned_imm( &mut self, offset: u32, args_length: u32, s1: RawReg, _s2: u32, imm: u32, ) -> Self::ReturnTy

Source§

fn branch_greater_signed_imm( &mut self, offset: u32, args_length: u32, s1: RawReg, _s2: u32, imm: u32, ) -> Self::ReturnTy

Source§

fn div_unsigned_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn div_signed_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn rem_unsigned_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn rem_signed_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn div_unsigned_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn div_signed_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn rem_unsigned_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn rem_signed_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn and_inverted( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn or_inverted( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn xnor( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn negate_and_add_imm_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn negate_and_add_imm_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn move_reg( &mut self, _offset: u32, _args_length: u32, dst: RawReg, src: RawReg, ) -> Self::ReturnTy

Source§

fn load_imm( &mut self, _offset: u32, _args_length: u32, dst: RawReg, _value: u32, ) -> Self::ReturnTy

Source§

fn load_imm64( &mut self, _offset: u32, _args_length: u32, dst: RawReg, _value: u64, ) -> Self::ReturnTy

Source§

fn mul_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn mul_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn mul_imm_32( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn mul_imm_64( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, _s2: u32, ) -> Self::ReturnTy

Source§

fn mul_upper_signed_signed( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn mul_upper_unsigned_unsigned( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn mul_upper_signed_unsigned( &mut self, _offset: u32, _args_length: u32, d: RawReg, s1: RawReg, s2: RawReg, ) -> Self::ReturnTy

Source§

fn invalid(&mut self, _offset: u32, _args_length: u32) -> Self::ReturnTy

Source§

fn trap(&mut self, _offset: u32, _args_length: u32) -> Self::ReturnTy

Source§

fn fallthrough(&mut self, _offset: u32, _args_length: u32) -> Self::ReturnTy

Source§

fn unlikely(&mut self, _offset: u32, _args_length: u32) -> Self::ReturnTy

Source§

fn jump( &mut self, _offset: u32, _args_length: u32, _target: u32, ) -> Self::ReturnTy

Source§

fn load_imm_and_jump( &mut self, _offset: u32, _args_length: u32, _ra: RawReg, _value: u32, _target: u32, ) -> Self::ReturnTy

Source§

fn jump_indirect( &mut self, _offset: u32, _args_length: u32, base: RawReg, _base_offset: u32, ) -> Self::ReturnTy

Source§

fn load_imm_and_jump_indirect( &mut self, _offset: u32, _args_length: u32, _ra: RawReg, base: RawReg, _value: u32, _base_offset: u32, ) -> Self::ReturnTy

Source§

fn ecalli( &mut self, _offset: u32, _args_length: u32, _imm: u32, ) -> Self::ReturnTy

Source§

fn sbrk( &mut self, _offset: u32, _args_length: u32, dst: RawReg, src: RawReg, ) -> Self::ReturnTy

Source§

fn memset(&mut self, _offset: u32, _args_length: u32) -> Self::ReturnTy

Auto Trait Implementations§

§

impl<'a, B, T> Freeze for Simulator<'a, B, T>
where T: Freeze,

§

impl<'a, B, T> RefUnwindSafe for Simulator<'a, B, T>

§

impl<'a, B, T> Send for Simulator<'a, B, T>
where T: Send, B: Send,

§

impl<'a, B, T> Sync for Simulator<'a, B, T>
where T: Sync, B: Sync,

§

impl<'a, B, T> Unpin for Simulator<'a, B, T>
where T: Unpin, B: Unpin,

§

impl<'a, B, T> UnwindSafe for Simulator<'a, B, T>
where T: UnwindSafe, B: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.