From d1c1e5c6adb85effbd29a82ebde76681468e2504 Mon Sep 17 00:00:00 2001 From: Henry Gressmann Date: Sun, 3 Dec 2023 22:54:28 +0100 Subject: feat: new tinywasm api Signed-off-by: Henry Gressmann --- crates/parser/src/error.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'crates/parser/src/error.rs') diff --git a/crates/parser/src/error.rs b/crates/parser/src/error.rs index ee217c7..6fa9e25 100644 --- a/crates/parser/src/error.rs +++ b/crates/parser/src/error.rs @@ -1,3 +1,5 @@ +use core::fmt::Debug; + use alloc::string::{String, ToString}; use wasmparser::Encoding; @@ -14,6 +16,29 @@ pub enum ParseError { Other(String), } +impl Debug for ParseError { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + Self::InvalidType => write!(f, "invalid type"), + Self::UnsupportedSection(section) => write!(f, "unsupported section: {}", section), + Self::DuplicateSection(section) => write!(f, "duplicate section: {}", section), + Self::EmptySection(section) => write!(f, "empty section: {}", section), + Self::UnsupportedOperator(operator) => write!(f, "unsupported operator: {}", operator), + Self::ParseError { message, offset } => { + write!(f, "error parsing module: {} at offset {}", message, offset) + } + Self::InvalidEncoding(encoding) => write!(f, "invalid encoding: {:?}", encoding), + Self::InvalidLocalCount { expected, actual } => write!( + f, + "invalid local count: expected {}, actual {}", + expected, actual + ), + Self::EndNotReached => write!(f, "end of module not reached"), + Self::Other(message) => write!(f, "unknown error: {}", message), + } + } +} + impl From for ParseError { fn from(value: wasmparser::BinaryReaderError) -> Self { Self::ParseError { -- cgit v1.3.1