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 #4479677 2026-09-16 12:59:37

# rustc version rustc 1.100.0-nightly (215a8af4b 2026-09-15)

# docs.rs version docsrs 0.0.0 (5779ee8ca2c69daa652b2060f9f7b942ad62a4f0 2026-09-15 )

# 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" "2b88f29a94e4e1380ed53c87c492336f5b74177eb54b67293087e161924140f6" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=html-non-static-files\", \"--resource-suffix\", \"-20260915-1.100.0-nightly-215a8af4b\", \"--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\"" "-j12" "--target" "x86_64-unknown-linux-gnu" "-Zrustdoc-scrape-examples", kill_on_drop: false }` [INFO] [stderr] warning: explicit `package.readme` can be inferred [INFO] [stderr] --> Cargo.toml:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | readme = "README.md" [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `cargo::manual_readme` is set to `warn` by default [INFO] [stderr] help: consider removing `package.readme` [INFO] [stderr] warning: `user-error` (manifest) generated 1 warning [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.15s [INFO] [stderr] Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/user_error/index.html [INFO] running `Command { std: "docker" "inspect" "2b88f29a94e4e1380ed53c87c492336f5b74177eb54b67293087e161924140f6", kill_on_drop: false }`