user-error 1.2.8

UserFacingError is an error crate that allows you to pretty print your errors and error chain for consumption by the end user. If you implement the UFE trait, the default implementation will let your print your error nicely to the TTY. There is also the UserFacingError type that most std Errors can be converted into, or that you can use directly.
Documentation

Build #3701845 2026-06-27 17:58:56

# rustc version rustc 1.98.0-nightly (ce9954c0c 2026-06-26)

# docs.rs version docsrs 0.0.0 (886bc7a22b1adc4b387ce1343447fe3af98d9ce5 2026-06-14 )

# build log [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-w" "/opt/rustwide/workdir" "--user" "1001:1001" "085a10760fe95dc8c9c982afad3dea5c40ea03623e100e9aa5a8c94e716bf6f3" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20260626-1.98.0-nightly-ce9954c0c\", \"--static-root-path\", \"/-/rustdoc.static/\", \"--cap-lints\", \"warn\", \"--extern-html-root-takes-precedence\"]" "--offline" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/x86_64-unknown-linux-gnu\"" "-Zrustdoc-scrape-examples" "-j6" "--target" "x86_64-unknown-linux-gnu", kill_on_drop: false }` [INFO] [stderr] warning: target filter specified, but no targets matched; this is a no-op [INFO] [stderr] Documenting user-error v1.2.8 (/opt/rustwide/workdir) [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/lib.rs:212:26 [INFO] [stderr] | [INFO] [stderr] 212 | type Source = Option<Box<(dyn Error)>>; [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 212 - type Source = Option<Box<(dyn Error)>>; [INFO] [stderr] 212 + type Source = Option<Box<dyn Error>>; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/lib.rs:276:35 [INFO] [stderr] | [INFO] [stderr] 276 | fn get_ufe_struct_members(error: &(dyn Error)) -> (Summary, Reasons) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 276 - fn get_ufe_struct_members(error: &(dyn Error)) -> (Summary, Reasons) { [INFO] [stderr] 276 + fn get_ufe_struct_members(error: &dyn Error) -> (Summary, Reasons) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/lib.rs:305:15 [INFO] [stderr] | [INFO] [stderr] 305 | impl From<Box<(dyn Error)>> for UserFacingError { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 305 - impl From<Box<(dyn Error)>> for UserFacingError { [INFO] [stderr] 305 + impl From<Box<dyn Error>> for UserFacingError { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/lib.rs:306:24 [INFO] [stderr] | [INFO] [stderr] 306 | fn from(error: Box<(dyn Error)>) -> UserFacingError { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 306 - fn from(error: Box<(dyn Error)>) -> UserFacingError { [INFO] [stderr] 306 + fn from(error: Box<dyn Error>) -> UserFacingError { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/lib.rs:322:12 [INFO] [stderr] | [INFO] [stderr] 322 | impl From<&(dyn Error)> for UserFacingError { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 322 - impl From<&(dyn Error)> for UserFacingError { [INFO] [stderr] 322 + impl From<&dyn Error> for UserFacingError { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/lib.rs:323:21 [INFO] [stderr] | [INFO] [stderr] 323 | fn from(error: &(dyn Error)) -> UserFacingError { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 323 - fn from(error: &(dyn Error)) -> UserFacingError { [INFO] [stderr] 323 + fn from(error: &dyn Error) -> UserFacingError { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `user-error` (lib doc) generated 6 warnings (run `cargo fix --lib -p user-error` to apply 6 suggestions) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.70s [INFO] [stderr] Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/user_error/index.html [INFO] running `Command { std: "docker" "inspect" "085a10760fe95dc8c9c982afad3dea5c40ea03623e100e9aa5a8c94e716bf6f3", kill_on_drop: false }`