Skip to main content

Module error

Module error 

Source
Expand description

Utilities for error propagation used across [frozen_core]

This module provides,

§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
FrozenError
Utility for error propagation used across [frozen_core]

Type Aliases§

FrozenResult
Custom result type w/ FrozenError as error type