pub mod computation;
pub mod context;
pub mod core;
pub mod io;
pub mod memory;
mod hierarchical;
mod legacy;
use std::fmt;
pub use self::hierarchical::*;
pub use legacy::{NumRs2Error, Result};
pub use computation::ComputationError;
pub use context::{ErrorContext, ErrorLocation, ErrorSeverity, OperationContext};
pub use core::CoreError;
pub use io::IOError;
pub use memory::MemoryError;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ErrorCategory {
Core,
Computation,
Memory,
IO,
}
impl fmt::Display for ErrorCategory {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
ErrorCategory::Core => write!(f, "Core"),
ErrorCategory::Computation => write!(f, "Computation"),
ErrorCategory::Memory => write!(f, "Memory"),
ErrorCategory::IO => write!(f, "I/O"),
}
}
}
pub type ContextResult<T> = std::result::Result<T, ErrorContext<NumRs2Error>>;
pub mod prelude {
pub use super::{
ComputationError, ContextResult, CoreError, ErrorCategory, ErrorContext, ErrorLocation,
ErrorSeverity, IOError, MemoryError, NumRs2Error, OperationContext, Result,
};
}