pub struct FrozenError {
pub module: u8,
pub domain: u8,
pub reason: u8,
pub context: Box<str>,
}Expand description
Utility for error propagation used across [frozen_core]
Fields§
§module: u88-bit unique identifier to identify the module of FrozenError object
domain: u88-bit unique identifier to identify the domain of FrozenError object
reason: u88-bit unique identifier to identify the reason of FrozenError object
context: Box<str>Error context for the FrozenError
Implementations§
Source§impl FrozenError
impl FrozenError
Sourcepub fn new(module: u8, domain: u8, code: ErrCode, errmsg: &str) -> Self
pub fn new(module: u8, domain: u8, code: ErrCode, errmsg: &str) -> Self
Construct a new FrozenError
§Example
use frozen_core::error::{FrozenError, ErrCode};
let err = FrozenError::new(0x10, 0x20, ErrCode::new(0x30, "io"), "failed to read file");
assert_eq!(err.module, 0x10);
assert_eq!(err.domain, 0x20);
assert_eq!(err.reason, 0x30);
assert!(err.context.contains("[io]"));
assert!(err.context.contains("failed to read file"));Sourcepub fn new_raw<E: Display>(
module: u8,
domain: u8,
code: ErrCode,
err: E,
) -> Self
pub fn new_raw<E: Display>( module: u8, domain: u8, code: ErrCode, err: E, ) -> Self
Construct a new FrozenError from raw [Error] object
§Example
use frozen_core::error::{FrozenError, ErrCode};
let io_err = std::io::Error::new(std::io::ErrorKind::NotFound, "file missing");
let err = FrozenError::new_raw(0x14, 0x24, ErrCode::new(0x34, "io"), io_err);
assert_eq!(err.module, 0x14);
assert_eq!(err.domain, 0x24);
assert_eq!(err.reason, 0x34);
assert!(err.context.contains("[io]"));
assert!(err.context.contains("file missing"));Trait Implementations§
Source§impl Clone for FrozenError
impl Clone for FrozenError
Source§impl Debug for FrozenError
impl Debug for FrozenError
Source§impl Display for FrozenError
impl Display for FrozenError
Source§impl Error for FrozenError
impl Error for FrozenError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for FrozenError
impl RefUnwindSafe for FrozenError
impl Send for FrozenError
impl Sync for FrozenError
impl Unpin for FrozenError
impl UnsafeUnpin for FrozenError
impl UnwindSafe for FrozenError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more