Expand description
Utilities for error propagation used across [frozen_core]
This module provides,
FrozenError: a structured error w/ 32-bit identifierFrozenResult: a result alias usingFrozenError
§Id
Each FrozenError uses a 32-bit identifier encoded in following format,
| module:8 | domain:8 | reason:16 |
This id packs important context which aids in the debugging process
§Example
use frozen_core::error::{FrozenError, FrozenResult, ErrCode};
fn read_file() -> FrozenResult<()> {
Err(FrozenError::new(0x10, 0x20, ErrCode::new(0x30, "io"), "read failed"))
}
let err = read_file().unwrap_err();
assert_eq!(err.module, 0x10);
assert_eq!(err.domain, 0x20);
assert_eq!(err.reason, 0x30);
assert!(err.context.contains("[io]"));Structs§
- ErrCode
- Static error descriptor used to construct
FrozenError - Frozen
Error - Utility for error propagation used across [
frozen_core]
Type Aliases§
- Frozen
Result - Custom result type w/
FrozenErroras error type