Struct Assertion

Source
pub struct Assertion { /* private fields */ }
Expand description

A link-time assertion. Functions mostly like a Patch.

Implementations§

Source§

impl Assertion

Source

pub fn source(&self) -> (u32, u32)

Where the assertion was defined. That is, the file stack node ID, and the line number.

Source

pub fn offset(&self) -> u32

The offset within the section’s data where the assertion’s expression shall be computed.

This doesn’t serve much purpose, since assertions only compute an expression, and don’t patch the data. It should be equal to the PC offset.

Source

pub fn err_type(&self) -> AssertionType

The assertion’s error type (warning, error, fatal).

Source

pub fn pc_section_id(&self) -> u32

The ID of the expression’s PC section. See pc_offset for more info.

Source

pub fn pc_offset(&self) -> u32

The expression’s PC offset.

This is separate from the offset, probably as legacy due to assertions inheriting a lot from patches.

Source

pub fn expr(&self) -> &RpnExpr

The assertion’s RPN expression.

Source

pub fn message(&self) -> &[u8]

The assertion’s message. As with all text pulled from object files, this is not guaranteed to be valid UTF-8.

Trait Implementations§

Source§

impl Debug for Assertion

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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.