summaryrefslogtreecommitdiff
path: root/crates/parser/src/lib.rs
diff options
context:
space:
mode:
authorHenry Gressmann <mail@henrygressmann.de>2024-01-31 00:03:42 +0100
committerHenry Gressmann <mail@henrygressmann.de>2024-01-31 00:03:42 +0100
commit6850e8bc669171c658696655f4f31996d6e934af (patch)
tree6efb61f6dc9790dd219a8bf7e39ab2434af3140a /crates/parser/src/lib.rs
parent712b7da4f6b20a9754dd78be632988bbb66f2cbe (diff)
chore: overall code cleanup
Signed-off-by: Henry Gressmann <mail@henrygressmann.de>
Diffstat (limited to 'crates/parser/src/lib.rs')
-rw-r--r--crates/parser/src/lib.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/crates/parser/src/lib.rs b/crates/parser/src/lib.rs
index c608232..8cc34db 100644
--- a/crates/parser/src/lib.rs
+++ b/crates/parser/src/lib.rs
@@ -1,6 +1,12 @@
#![no_std]
+#![doc(test(
+ no_crate_inject,
+ attr(deny(warnings, rust_2018_idioms), allow(dead_code, unused_assignments, unused_variables))
+))]
+#![warn(missing_docs, missing_debug_implementations, rust_2018_idioms, unreachable_pub)]
#![forbid(unsafe_code)]
#![cfg_attr(not(feature = "std"), feature(error_in_core))]
+//! See [`tinywasm`](https://docs.rs/tinywasm) for documentation.
mod std;
extern crate alloc;
@@ -30,14 +36,17 @@ use wasmparser::Validator;
pub use tinywasm_types::TinyWasmModule;
-#[derive(Default)]
+/// A WebAssembly parser
+#[derive(Default, Debug)]
pub struct Parser {}
impl Parser {
+ /// Create a new parser instance
pub fn new() -> Self {
Self {}
}
+ /// Parse a [`TinyWasmModule`] from bytes
pub fn parse_module_bytes(&self, wasm: impl AsRef<[u8]>) -> Result<TinyWasmModule> {
let wasm = wasm.as_ref();
let mut validator = Validator::new();
@@ -55,6 +64,7 @@ impl Parser {
}
#[cfg(feature = "std")]
+ /// Parse a [`TinyWasmModule`] from a file. Requires `std` feature.
pub fn parse_module_file(&self, path: impl AsRef<crate::std::path::Path> + Clone) -> Result<TinyWasmModule> {
use alloc::format;
let f = crate::std::fs::File::open(path.clone())
@@ -65,6 +75,7 @@ impl Parser {
}
#[cfg(feature = "std")]
+ /// Parse a [`TinyWasmModule`] from a stream. Requires `std` feature.
pub fn parse_module_stream(&self, mut stream: impl std::io::Read) -> Result<TinyWasmModule> {
use alloc::format;