Skip to content

Provides `Failure(String)` implementing `std::error::Error`. Includes convenience macros making it perfect for usage with `wrap-match` in CLIs.

License

Notifications You must be signed in to change notification settings

amsam0/cli-failure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cli-failure

Provides Failure(String) implementing std::error::Error. Includes convenience macros making it perfect for usage with wrap-match in CLIs.

This crate should not be used in libraries. Instead, use something like thiserror. For libraries, it is much better to have specific errors so library users can handle them better.

Documentation | crates.io

Example

// wrap-match is not required, but it is highly recommended
fn example() -> Result<(), Box<dyn Error>> {
    let result = "bad";
    // With convenience macros

    // These two lines are the same
    bail!("something {result} happened");
    return failure!("something {result} happened");

    return failure_raw!("something {result} happened").err_boxed();
    return Err(failure_raw!("something {result} happened").boxed());
    // Manually
    return Failure(format!("something {result} happened")).err_boxed();
    return Err(Failure(format!("something {result} happened")).boxed());
    Ok(())
}

About

Provides `Failure(String)` implementing `std::error::Error`. Includes convenience macros making it perfect for usage with `wrap-match` in CLIs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages