use core::fmt;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum CorbaRustError {
Unsupported {
what: &'static str,
at: usize,
},
UnresolvedType {
scoped: String,
},
DataType(zerodds_idl_rust::RustGenError),
}
impl fmt::Display for CorbaRustError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::Unsupported { what, at } => {
write!(
f,
"corba-rust-codegen: unsupported IDL construct `{what}` at offset {at}"
)
}
Self::UnresolvedType { scoped } => {
write!(f, "corba-rust-codegen: unresolved type `{scoped}`")
}
Self::DataType(e) => write!(f, "corba-rust-codegen: data-type emit failed: {e}"),
}
}
}
impl std::error::Error for CorbaRustError {}
impl From<zerodds_idl_rust::RustGenError> for CorbaRustError {
fn from(e: zerodds_idl_rust::RustGenError) -> Self {
Self::DataType(e)
}
}
pub type Result<T> = core::result::Result<T, CorbaRustError>;