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>;