Crates.io | fmterr |
lib.rs | fmterr |
version | 0.1.1 |
source | src |
created_at | 2021-09-28 04:38:56.699524 |
updated_at | 2021-09-28 04:49:39.672912 |
description | Sane error reporting that just works. |
homepage | https://github.com/arctic-hen7/fmterr |
repository | https://github.com/arctic-hen7/fmterr |
max_upload_size | |
id | 457328 |
size | 19,225 |
fmterr
fmterr
(pronounced fumpterr obviously!) is a tiny error reporting tool for Rust! If you have an error with a chain of sources and you want to display it to the user without bringing in something like anyhow
, fmterr
is for you! Just run fmt_err(&err)
and you'll get a string error message that displays the source chain nicely for end users.
You can use fmterr
to format any error that implements std::error::Error
(basically any error worth its salt) like so:
use fmterr::fmt_err;
// Imagine this is a super-complex error with a nested source
let err = std::io::Error::from(std::io::ErrorKind::NotFound);
let err_str = fmt_err(&err);
println!("{}", err_str);
That'll produce the following if you use a complex error:
Error: first error message
Caused by:
second error message
Caused by:
third error message
Or just this if you use something without a source (with an io::ErrorKind::NotFound
):
Error: entity not found
fmterr
vs anyhow
Most library applications will use thiserror
or the like to create their errors, and then they'll sometimes need a formatting tool. If you use anyhow
as a formatting tool, you're basically using a sledgehammer to fix a dent, you just don't need it all! That said, anyhow
is fantastic for applications where the rest of its features are needed.
We appreciate all kinds of contributions, check out our contributing guidelines for more information! Also, please be sure to follow our code of conduct.
See LICENSE
.