use miette::Diagnostic;
use thiserror::Error;
#[derive(Diagnostic, Debug, Error)]
pub enum TranspileError {
#[error("No mapping registered for C++ path `{path}`")]
UnmappedPath {
path: String,
#[source_code]
src: String,
#[label = "no mapping for this path"]
err_span: miette::SourceSpan,
},
#[error("{message}")]
UnsupportedType {
message: String,
#[source_code]
src: String,
#[label = "{message}"]
err_span: miette::SourceSpan,
},
#[error("{message}")]
UnsupportedExpr {
message: String,
#[source_code]
src: String,
#[label = "{message}"]
err_span: miette::SourceSpan,
},
#[error("{message}")]
UnsupportedItem {
message: String,
#[source_code]
src: String,
#[label = "{message}"]
err_span: miette::SourceSpan,
},
#[error("{message}")]
UnsupportedStmt {
message: String,
#[source_code]
src: String,
#[label = "{message}"]
err_span: miette::SourceSpan,
},
#[error("Invalid Rust type syntax `{rust_type}`: {reason}")]
InvalidRustType { rust_type: String, reason: String },
}