use thiserror::Error;
use wasmparser::BinaryReaderError;
mod compiler;
mod df_helper;
mod operators;
mod sections;
type DFWasmResult<T> = std::result::Result<T, DFWasmError>;
#[derive(Error, Debug)]
pub enum DFWasmError {
#[error("error: {0}")]
ReadError(#[from] BinaryReaderError),
#[error("error: unsupported WASM version {0}")]
UnsupportedVersion(u16),
#[error("error: WASM components are not supported")]
UnsupportedComponents,
#[error("error: WASM tags are not supported")]
UnsupportedTags,
#[error("error: unsupported const expr")]
UnsupportedConstExpr,
#[error("error: unsupported operator {op} at location {location}")]
UnsupportedOperator { op: String, location: usize },
#[error("error: tables have a maximum size of 10000")]
MaximumTableSize,
#[error("error: multiple memories are not supported")]
MultipleMemories,
#[error("error: multiple start methods are not supported")]
MultipleStartMethods,
#[error("error: found unknown section with id {0}")]
UnknownSection(u8),
#[error("error: unknown payload")]
UnknownPayload,
#[error("error: {0} are not yet implemented")]
NotYetImplemented(&'static str),
}
pub use compiler::{DFWasmCompiler, DFWasmCompilerOptions};