Skip to main content

pepl_codegen/
error.rs

1//! Codegen error types.
2
3use thiserror::Error;
4
5/// Errors that can occur during WASM code generation.
6#[derive(Debug, Error)]
7pub enum CodegenError {
8    /// An AST feature is not yet supported by the code generator.
9    #[error("unsupported feature: {0}")]
10    Unsupported(String),
11
12    /// An internal consistency check failed.
13    #[error("internal codegen error: {0}")]
14    Internal(String),
15
16    /// The generated WASM module failed validation.
17    #[error("WASM validation failed: {0}")]
18    ValidationFailed(String),
19
20    /// A symbol could not be resolved during codegen.
21    #[error("unresolved symbol: {0}")]
22    UnresolvedSymbol(String),
23
24    /// Too many locals, functions, or other entities exceeded WASM limits.
25    #[error("limit exceeded: {0}")]
26    LimitExceeded(String),
27}
28
29/// Codegen result type alias.
30pub type CodegenResult<T> = Result<T, CodegenError>;