Struct yaxpeax_arch::AddressDiff [−][src]
pub struct AddressDiff<T: AddressDiffAmount> { /* fields omitted */ }
a struct describing the differece between some pair of A: Address
. this is primarily useful
in describing the size of an instruction, or the relative offset of a branch.
for any address type A
, the following must hold:
use yaxpeax_arch::AddressBase; fn diff_check<A: AddressBase + core::fmt::Debug>(left: A, right: A) { let diff = left.diff(&right); if let Some(offset) = diff { assert_eq!(left.wrapping_offset(offset), right); } }
which is to say, yaxpeax
assumes associativity holds when diff
yields a Some
.
Implementations
impl<T: AddressDiffAmount> AddressDiff<T>
[src]
impl<T: AddressDiffAmount> AddressDiff<T>
[src]pub fn from_const(amount: T) -> Self
[src]
impl<T: AddressDiffAmount> AddressDiff<T>
[src]
impl<T: AddressDiffAmount> AddressDiff<T>
[src]Trait Implementations
impl<T: Clone + AddressDiffAmount> Clone for AddressDiff<T>
[src]
impl<T: Clone + AddressDiffAmount> Clone for AddressDiff<T>
[src]fn clone(&self) -> AddressDiff<T>
[src]
fn clone(&self) -> AddressDiff<T>
[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]Performs copy-assignment from source
. Read more
impl<T: AddressDiffAmount + Debug> Debug for AddressDiff<T>
[src]
impl<T: AddressDiffAmount + Debug> Debug for AddressDiff<T>
[src]impl<'de, T: AddressDiffAmount> Deserialize<'de> for AddressDiff<T> where
T: AddressDiffAmount,
[src]
impl<'de, T: AddressDiffAmount> Deserialize<'de> for AddressDiff<T> where
T: AddressDiffAmount,
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
impl<T: Ord + AddressDiffAmount> Ord for AddressDiff<T>
[src]
impl<T: Ord + AddressDiffAmount> Ord for AddressDiff<T>
[src]impl<T: PartialEq + AddressDiffAmount> PartialEq<AddressDiff<T>> for AddressDiff<T>
[src]
impl<T: PartialEq + AddressDiffAmount> PartialEq<AddressDiff<T>> for AddressDiff<T>
[src]fn eq(&self, other: &AddressDiff<T>) -> bool
[src]
fn eq(&self, other: &AddressDiff<T>) -> bool
[src]This method tests for self
and other
values to be equal, and is used
by ==
. Read more
fn ne(&self, other: &AddressDiff<T>) -> bool
[src]
fn ne(&self, other: &AddressDiff<T>) -> bool
[src]This method tests for !=
.
impl<T: PartialOrd + AddressDiffAmount> PartialOrd<AddressDiff<T>> for AddressDiff<T>
[src]
impl<T: PartialOrd + AddressDiffAmount> PartialOrd<AddressDiff<T>> for AddressDiff<T>
[src]fn partial_cmp(&self, other: &AddressDiff<T>) -> Option<Ordering>
[src]
fn partial_cmp(&self, other: &AddressDiff<T>) -> Option<Ordering>
[src]This method returns an ordering between self
and other
values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than (for self
and other
) and is used by the <
operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl<T: AddressDiffAmount> Serialize for AddressDiff<T> where
T: Serialize,
[src]
impl<T: AddressDiffAmount> Serialize for AddressDiff<T> where
T: Serialize,
[src]impl<T: Copy + AddressDiffAmount> Copy for AddressDiff<T>
[src]
impl<T: Eq + AddressDiffAmount> Eq for AddressDiff<T>
[src]
impl<T: AddressDiffAmount> StructuralEq for AddressDiff<T>
[src]
impl<T: AddressDiffAmount> StructuralPartialEq for AddressDiff<T>
[src]
Auto Trait Implementations
impl<T> RefUnwindSafe for AddressDiff<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for AddressDiff<T> where
T: Send,
T: Send,
impl<T> Sync for AddressDiff<T> where
T: Sync,
T: Sync,
impl<T> Unpin for AddressDiff<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for AddressDiff<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,