dynasmrt

Trait DynasmApi

Source
pub trait DynasmApi: Extend<u8> + for<'a> Extend<&'a u8> {
    // Required methods
    fn offset(&self) -> AssemblyOffset;
    fn push(&mut self, byte: u8);
    fn align(&mut self, alignment: usize, with: u8);

    // Provided methods
    fn push_i8(&mut self, value: i8) { ... }
    fn push_i16(&mut self, value: i16) { ... }
    fn push_i32(&mut self, value: i32) { ... }
    fn push_i64(&mut self, value: i64) { ... }
    fn push_u16(&mut self, value: u16) { ... }
    fn push_u32(&mut self, value: u32) { ... }
    fn push_u64(&mut self, value: u64) { ... }
    fn runtime_error(&self, msg: &'static str) -> ! { ... }
}
Expand description

This trait represents the interface that must be implemented to allow the dynasm preprocessor to assemble into a datastructure.

Required Methods§

Source

fn offset(&self) -> AssemblyOffset

Report the current offset into the assembling target

Source

fn push(&mut self, byte: u8)

Push a byte into the assembling target

Source

fn align(&mut self, alignment: usize, with: u8)

Push filler until the assembling target end is aligned to the given alignment.

Provided Methods§

Source

fn push_i8(&mut self, value: i8)

Push a signed byte into the assembling target

Source

fn push_i16(&mut self, value: i16)

Push a signed word into the assembling target

Source

fn push_i32(&mut self, value: i32)

Push a signed doubleword into the assembling target

Source

fn push_i64(&mut self, value: i64)

Push a signed quadword into the assembling target

Source

fn push_u16(&mut self, value: u16)

Push an usigned word into the assembling target

Source

fn push_u32(&mut self, value: u32)

Push an usigned doubleword into the assembling target

Source

fn push_u64(&mut self, value: u64)

Push an usigned quadword into the assembling target

Source

fn runtime_error(&self, msg: &'static str) -> !

This function is called in when a runtime error has to be generated. It panics.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§