Struct wasmparser::Parser
[−]
[src]
pub struct Parser<'a> { /* fields omitted */ }
The Parser
type. A simple event-driven parser of WebAssembly binary
format. The read(&mut self)
is used to iterate through WebAssembly records.
Methods
impl<'a> Parser<'a>
[src]
fn new(data: &[u8]) -> Parser
Constructs Parser
type.
Examples
let data: &[u8] = &[0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x4, 0x01, 0x60, 0x00, 0x00, 0x03, 0x02, 0x01, 0x00, 0x0a, 0x05, 0x01, 0x03, 0x00, 0x01, 0x0b]; let mut parser = wasmparser::Parser::new(data);
fn read(&mut self) -> &ParserState
Reads next record from the WebAssembly binary data. The methods returns
reference to current state of the parser. See ParserState
num.
Examples
let mut parser = wasmparser::Parser::new(data); { let state = parser.read(); println!("First state {:?}", state); } { let state = parser.read(); println!("Second state {:?}", state); }
fn push_input(&mut self, input: ParserInput)
fn read_with_input(&mut self, input: ParserInput) -> &ParserState
Reads next record from the WebAssembly binary data. It also allows to
control how parser will treat the next record(s). The method accepts the
ParserInput
parameter that allows e.g. to skip section or function
operators. The methods returns reference to current state of the parser.
Examples
let mut parser = wasmparser::Parser::new(data); let mut next_input = wasmparser::ParserInput::Default; loop { let state = parser.read_with_input(next_input); match *state { wasmparser::ParserState::EndWasm => break, wasmparser::ParserState::BeginWasm { .. } | wasmparser::ParserState::EndSection => next_input = wasmparser::ParserInput::Default, wasmparser::ParserState::BeginSection { ref code, .. } => { println!("Found section: {:?}", code); next_input = wasmparser::ParserInput::SkipSection; }, _ => unreachable!() } }