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 #2983996 2026-03-08 09:00:49

# rustc version rustc 1.96.0-nightly (e370b60cf 2026-03-07)

# docs.rs version docsrs 0.0.0 (3c601d69 2026-03-07 )

# build log [INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace-builder/builds/user-error-1.2.8/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace-builder/builds/user-error-1.2.8/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace-builder/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace-builder/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "6442450944" "--cpus" "6" "--user" "1001:1001" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20260307-1.96.0-nightly-e370b60cf\", \"--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: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 6df6d06e309a243df80626a996edec9180b051bd78719ed411327e71b745a23d [INFO] running `Command { std: "docker" "start" "-a" "6df6d06e309a243df80626a996edec9180b051bd78719ed411327e71b745a23d", 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.38s [INFO] [stderr] Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/user_error/index.html [INFO] running `Command { std: "docker" "inspect" "6df6d06e309a243df80626a996edec9180b051bd78719ed411327e71b745a23d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6df6d06e309a243df80626a996edec9180b051bd78719ed411327e71b745a23d", kill_on_drop: false }` [INFO] [stdout] 6df6d06e309a243df80626a996edec9180b051bd78719ed411327e71b745a23d