feat!: decouple wasmer from Marine, replace it with generic backend interface (#219)

This commit is contained in:
Valery Antopol
2023-03-15 00:43:51 +03:00
committed by GitHub
parent b0e9b2c104
commit d3a773df4f
157 changed files with 5375 additions and 2179 deletions

View File

@ -0,0 +1,24 @@
pub use multimap::MultiMap;
pub fn custom_sections(bytes: &[u8]) -> Result<MultiMap<String, Vec<u8>>, String> {
use wasmparser::Parser;
use wasmparser::Payload;
Parser::new(0)
.parse_all(bytes)
.filter_map(|payload| {
let payload = match payload {
Ok(payload) => payload,
Err(e) => return Some(Err(e.to_string())),
};
match payload {
Payload::CustomSection(reader) => {
let name = reader.name().to_string();
let data = reader.data().to_vec();
Some(Ok((name, data)))
}
_ => None,
}
})
.collect()
}