[][src]Struct wasmparser::BinaryReader

pub struct BinaryReader<'a> { /* fields omitted */ }

A binary reader of the WebAssembly structures and types.

Implementations

impl<'a> BinaryReader<'a>[src]

pub fn new(data: &[u8]) -> BinaryReader[src]

Constructs BinaryReader type.

Examples

let fn_body = &vec![0x41, 0x00, 0x10, 0x00, 0x0B];
let mut reader = wasmparser::BinaryReader::new(fn_body);
while !reader.eof() {
    let op = reader.read_operator();
    println!("{:?}", op)
}

pub fn new_with_offset(data: &[u8], original_offset: usize) -> BinaryReader[src]

Constructs a BinaryReader with an explicit starting offset.

pub fn original_position(&self) -> usize[src]

pub fn range(&self) -> Range[src]

Returns a range from the starting offset to the end of the buffer.

pub fn read_type(&mut self) -> Result<Type>[src]

pub fn read_local_count(&mut self) -> Result<usize>[src]

Read a count indicating the number of times to call read_local_decl.

pub fn read_local_decl(
    &mut self,
    locals_total: &mut usize
) -> Result<(u32, Type)>
[src]

Read a (count, value_type) declaration of local variables of the same type.

pub fn eof(&self) -> bool[src]

Returns whether the BinaryReader has reached the end of the file.

pub fn current_position(&self) -> usize[src]

Returns the BinaryReader's current position.

pub fn bytes_remaining(&self) -> usize[src]

Returns the number of bytes remaining in the BinaryReader.

pub fn read_bytes(&mut self, size: usize) -> Result<&'a [u8]>[src]

Advances the BinaryReader size bytes, and returns a slice from the current position of size length.

Errors

If size exceeds the remaining length in BinaryReader.

pub fn read_u32(&mut self) -> Result<u32>[src]

Advances the BinaryReader four bytes and returns a u32.

Errors

If BinaryReader has less than four bytes remaining.

pub fn read_u64(&mut self) -> Result<u64>[src]

Advances the BinaryReader eight bytes and returns a u64.

Errors

If BinaryReader has less than eight bytes remaining.

pub fn read_u8(&mut self) -> Result<u32>[src]

Advances the BinaryReader a single byte, and returns the data as a u32.

Errors

If BinaryReader has no bytes remaining.

pub fn read_var_u8(&mut self) -> Result<u32>[src]

Advances the BinaryReader up to two bytes to parse a variable length integer as a u8.

Errors

If BinaryReader has less than one or two bytes remaining, or the integer is larger than eight bits.

pub fn read_var_u32(&mut self) -> Result<u32>[src]

Advances the BinaryReader up to four bytes to parse a variable length integer as a u32.

Errors

If BinaryReader has less than one or up to four bytes remaining, or the integer is larger than 32 bits.

pub fn skip_var_32(&mut self) -> Result<()>[src]

Advances the BinaryReader up to four bytes over a variable length 32 bit integer, discarding the result.

Errors

If BinaryReader has less than one or up to four bytes remaining, or the integer is larger than 32 bits.

pub fn skip_type(&mut self) -> Result<()>[src]

Alias method for BinaryReader::skip_var_u32.

pub fn skip_bytes(&mut self, len: usize) -> Result<()>[src]

Advances the BinaryReader len bytes, skipping the result.

Errors

If BinaryReader has less than len bytes remaining.

pub fn skip_string(&mut self) -> Result<()>[src]

Advances the BinaryReader past a WebAssembly string. This method does not perform any utf-8 validation.

Errors

If BinaryReader has less than four bytes, the string's length exceeds the remaining bytes, or the string length exceeds limits::MAX_WASM_STRING_SIZE.

pub fn read_var_i32(&mut self) -> Result<i32>[src]

Advances the BinaryReader up to four bytes to parse a variable length integer as a i32.

Errors

If BinaryReader has less than one or up to four bytes remaining, or the integer is larger than 32 bits.

pub fn read_var_s33(&mut self) -> Result<i64>[src]

Advances the BinaryReader up to four bytes to parse a variable length integer as a signed 33 bit integer, returned as a i64.

Errors

If BinaryReader has less than one or up to five bytes remaining, or the integer is larger than 33 bits.

pub fn read_var_i64(&mut self) -> Result<i64>[src]

Advances the BinaryReader up to eight bytes to parse a variable length integer as a 64 bit integer, returned as a i64.

Errors

If BinaryReader has less than one or up to eight bytes remaining, or the integer is larger than 64 bits.

pub fn read_f32(&mut self) -> Result<Ieee32>[src]

Advances the BinaryReader up to four bytes to parse a variable length integer as a 32 bit floating point integer, returned as Ieee32.

Errors

If BinaryReader has less than one or up to four bytes remaining, or the integer is larger than 32 bits.

pub fn read_f64(&mut self) -> Result<Ieee64>[src]

Advances the BinaryReader up to four bytes to parse a variable length integer as a 32 bit floating point integer, returned as Ieee32.

Errors

If BinaryReader has less than one or up to four bytes remaining, or the integer is larger than 32 bits.

pub fn read_string(&mut self) -> Result<&'a str>[src]

Reads a WebAssembly string from the module.

Errors

If BinaryReader has less than up to four bytes remaining, the string's length exceeds the remaining bytes, the string's length exceeds limits::MAX_WASM_STRING_SIZE, or the string contains invalid utf-8.

pub fn read_operator(&mut self) -> Result<Operator<'a>>[src]

Reads the next available Operator.

Errors

If BinaryReader has less bytes remaining than required to parse the Operator.

Trait Implementations

impl<'a> Clone for BinaryReader<'a>[src]

impl<'a> Debug for BinaryReader<'a>[src]

Auto Trait Implementations

impl<'a> RefUnwindSafe for BinaryReader<'a>

impl<'a> Send for BinaryReader<'a>

impl<'a> Sync for BinaryReader<'a>

impl<'a> Unpin for BinaryReader<'a>

impl<'a> UnwindSafe for BinaryReader<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.