rich-result

Crates.iorich-result
lib.rsrich-result
version0.1.2
sourcesrc
created_at2022-11-29 23:56:54.319831
updated_at2022-12-22 20:13:12.564172
descriptionRich result type differentiating between recoverable & fatal errors
homepage
repositoryhttps://github.com/42triangles/rich-result
max_upload_size
id725794
size37,477
42triangles (42triangles)

documentation

README

A richer Result type for Rust

(on crates.io)

Defined as

pub enum Result<T, RE, FE> {
    Ok(T),
    Recoverable(RE),
    Fatal(FE),
}

it can handle recoverable & fatal errors somewhat easily.

Using ? on it, it either diverges with Result::Fatal for a Result::Fatal, or returns a

pub enum LocalResult<T, RE> {
    NoErr(T),
    Handle(RE),
}

which in turn can be used with ? to get the T out of it, or diverge with a Result::Recoverable.

Result from core when used with ? either diverges with Fatal or returns the value in Ok.

Additionally, for a public API surface for example, you can use the Result type from core by stacking it like so: Result<Result<T, RE>, FE>, with all the instances of ? working as expected.

Commit count: 12

cargo fmt