# rustc version rustc 1.97.0-nightly (66da6cae1 2026-04-20)
# docs.rs version docsrs 0.0.0 (15f7e1e9dfac4fc5b7cc4abfd7682239002ba909 2026-04-08 )
# build log [INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace-builder4/builds/haply-1.1.0/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace-builder4/builds/haply-1.1.0/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace-builder4/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace-builder4/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "6442450944" "--cpuset-cpus" "20-23" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "sleep" "infinity", 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] 35fd4d211f7f536c594a1372c111437033ca4278482dc3ec6661b1ff684fea46 [INFO] running `Command { std: "docker" "start" "35fd4d211f7f536c594a1372c111437033ca4278482dc3ec6661b1ff684fea46", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-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" "--user" "1001:1001" "35fd4d211f7f536c594a1372c111437033ca4278482dc3ec6661b1ff684fea46" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20260420-1.97.0-nightly-66da6cae1\", \"--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" "-j4" "--target" "x86_64-unknown-linux-gnu", kill_on_drop: false }` [INFO] [stderr] warning: Rustdoc did not scrape the following examples because they require dev-dependencies: damping_demo, device_basics, events_demo, haptic_sample, navigation_demo, ping_demo, profile_demo, sdf_demo, test_tracy [INFO] [stderr] If you want Rustdoc to scrape these examples, then add `doc-scrape-examples = true` [INFO] [stderr] to the [[example]] target configuration of at least one example. [INFO] [stderr] warning: target filter specified, but no targets matched; this is a no-op [INFO] [stderr] Documenting haply v1.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | alias = "basis" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | deserialize_with = "deserialize_optional_transform" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | alias = "basis" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | deserialize_with = "deserialize_optional_transform" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | alias = "basis" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | deserialize_with = "deserialize_optional_transform" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | deserialize_with = "deserialize_optional_transform" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | deserialize_with = "deserialize_optional_transform" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | deserialize_with = "deserialize_optional_transform" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | deserialize_with = "deserialize_optional_transform" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | deserialize_with = "deserialize_optional_transform" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | deserialize_with = "deserialize_optional_transform" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | deserialize_with = "deserialize_optional_transform" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: failed to parse serde attribute [INFO] [stderr] | [INFO] [stderr] | deserialize_with = "deserialize_optional_transform" [INFO] [stderr] | [INFO] [stderr] = note: ts-rs failed to parse this attribute. It will be ignored. [INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stderr] --> src/state.rs:521:26 [INFO] [stderr] | [INFO] [stderr] 521 | let v: Value = match ( [INFO] [stderr] | __________________________^ [INFO] [stderr] 522 | | { [INFO] [stderr] | |________^ [INFO] [stderr] ... [INFO] [stderr] 526 | } [INFO] [stderr] | __________^ [INFO] [stderr] 527 | | ) { [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] 521 ~ let v: Value = match { [INFO] [stderr] 522 | #[cfg(feature = "tracy")] [INFO] [stderr] 523 | let _parse_span = tracy_client::span!("state::update_state_on_message_parse_json"); [INFO] [stderr] 524 | serde_json::from_str(&message) [INFO] [stderr] 525 ~ } { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stderr] --> src/state.rs:548:15 [INFO] [stderr] | [INFO] [stderr] 548 | match ( [INFO] [stderr] | _______________^ [INFO] [stderr] 549 | | { [INFO] [stderr] | |____________^ [INFO] [stderr] ... [INFO] [stderr] 555 | } [INFO] [stderr] | ______________^ [INFO] [stderr] 556 | | ) { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 548 ~ match { [INFO] [stderr] 549 | #[cfg(feature = "tracy")] [INFO] [stderr] ... [INFO] [stderr] 553 | serde_json::from_value::<ServiceData>(v) [INFO] [stderr] 554 ~ } { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stderr] --> src/state.rs:577:23 [INFO] [stderr] | [INFO] [stderr] 577 | match ( [INFO] [stderr] | _______________________^ [INFO] [stderr] 578 | | { [INFO] [stderr] | |____________________^ [INFO] [stderr] ... [INFO] [stderr] 584 | } [INFO] [stderr] | ______________________^ [INFO] [stderr] 585 | | ) { [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 577 ~ match { [INFO] [stderr] 578 | #[cfg(feature = "tracy")] [INFO] [stderr] ... [INFO] [stderr] 582 | serde_json::from_value::<ServiceState>(state_fallback_candidate.clone()) [INFO] [stderr] 583 ~ } { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stderr] --> src/state.rs:635:15 [INFO] [stderr] | [INFO] [stderr] 635 | match ( [INFO] [stderr] | _______________^ [INFO] [stderr] 636 | | { [INFO] [stderr] | |____________^ [INFO] [stderr] ... [INFO] [stderr] 642 | } [INFO] [stderr] | ______________^ [INFO] [stderr] 643 | | ) { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 635 ~ match { [INFO] [stderr] 636 | #[cfg(feature = "tracy")] [INFO] [stderr] ... [INFO] [stderr] 640 | serde_json::from_value::<ServiceState>(v.clone()) [INFO] [stderr] 641 ~ } { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `haply` (lib doc) generated 4 warnings (run `cargo fix --lib -p haply` to apply 4 suggestions) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.58s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nalgebra v0.27.1 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] [stderr] Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/haply/index.html [INFO] running `Command { std: "docker" "stop" "-t" "1" "35fd4d211f7f536c594a1372c111437033ca4278482dc3ec6661b1ff684fea46", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "35fd4d211f7f536c594a1372c111437033ca4278482dc3ec6661b1ff684fea46", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "35fd4d211f7f536c594a1372c111437033ca4278482dc3ec6661b1ff684fea46", kill_on_drop: false }` [INFO] [stdout] 35fd4d211f7f536c594a1372c111437033ca4278482dc3ec6661b1ff684fea46