[INFO] cloning repository https://github.com/J45k4/puppydrive
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/J45k4/puppydrive" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJ45k4%2Fpuppydrive", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJ45k4%2Fpuppydrive'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ede1cc4f1f0097a1ef5e4edd6a0ca9164a149caf
[INFO] checking J45k4/puppydrive against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJ45k4%2Fpuppydrive" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/J45k4/puppydrive
[INFO] finished tweaking git repo https://github.com/J45k4/puppydrive
[INFO] tweaked toml for git repo https://github.com/J45k4/puppydrive written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/J45k4/puppydrive on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/J45k4/puppydrive already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bbf09d2ff861f77db6fb322bd1e8449336ed543647eef45ed1f18e2e872f80f3
[INFO] running `Command { std: "docker" "start" "-a" "bbf09d2ff861f77db6fb322bd1e8449336ed543647eef45ed1f18e2e872f80f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bbf09d2ff861f77db6fb322bd1e8449336ed543647eef45ed1f18e2e872f80f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bbf09d2ff861f77db6fb322bd1e8449336ed543647eef45ed1f18e2e872f80f3", kill_on_drop: false }`
[INFO] [stdout] bbf09d2ff861f77db6fb322bd1e8449336ed543647eef45ed1f18e2e872f80f3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dunmustuse_in_always_ok" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c541b6d77a463b2b63405fdf651cad102e2f55d212e410ad18bf818efdd1b4cb
[INFO] running `Command { std: "docker" "start" "-a" "c541b6d77a463b2b63405fdf651cad102e2f55d212e410ad18bf818efdd1b4cb", kill_on_drop: false }`
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking log v0.4.25
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking socket2 v0.5.8
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking data-encoding v2.8.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking foldhash v0.1.4
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking unsigned-varint v0.8.0
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking quick-protobuf v0.8.1
[INFO] [stderr]     Checking core2 v0.4.0
[INFO] [stderr]    Compiling getrandom v0.3.1
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking hashbrown v0.15.2
[INFO] [stderr]     Checking http v1.2.0
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking sha2 v0.10.8
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking multihash v0.19.3
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking base-x v0.2.11
[INFO] [stderr]     Checking bs58 v0.5.1
[INFO] [stderr]     Checking futures-timer v3.0.3
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking unsigned-varint v0.7.2
[INFO] [stderr]     Checking web-time v1.1.0
[INFO] [stderr]    Compiling cc v1.2.12
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]    Compiling snow v0.9.6
[INFO] [stderr]     Checking regex-syntax v0.8.6
[INFO] [stderr]    Compiling serde_json v1.0.138
[INFO] [stderr]    Compiling rustversion v1.0.19
[INFO] [stderr]    Compiling prometheus-client v0.22.3
[INFO] [stderr]     Checking tinyvec v1.10.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]     Checking dtoa v1.0.10
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling time-macros v0.2.19
[INFO] [stderr]     Checking uuid v1.13.1
[INFO] [stderr]     Checking hex_fmt v0.3.0
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking indexmap v2.11.4
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking cfb v0.7.3
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking clap_builder v4.5.27
[INFO] [stderr]     Checking hashlink v0.10.0
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.31.0
[INFO] [stderr]     Checking infer v0.19.0
[INFO] [stderr]     Checking gethostname v0.5.0
[INFO] [stderr]     Checking time v0.3.37
[INFO] [stderr]     Checking regex-automata v0.4.10
[INFO] [stderr]     Checking simple_logger v5.0.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking regex v1.11.2
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling data-encoding-macro-internal v0.1.15
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]     Checking data-encoding-macro v0.1.17
[INFO] [stderr]     Checking multibase v0.9.1
[INFO] [stderr]     Checking tokio v1.43.0
[INFO] [stderr]    Compiling libp2p-swarm-derive v0.34.2
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling enum-as-inner v0.6.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling prometheus-client-derive-encode v0.4.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.28
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]     Checking netlink-packet-utils v0.5.2
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking netlink-packet-core v0.7.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]     Checking tungstenite v0.26.2
[INFO] [stderr]     Checking netlink-packet-route v0.17.1
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking x25519-dalek v2.0.1
[INFO] [stderr]     Checking zerovec v0.11.4
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking libp2p-identity v0.2.12
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking clap v4.5.28
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.3
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking asynchronous-codec v0.7.0
[INFO] [stderr]     Checking futures-bounded v0.2.4
[INFO] [stderr]     Checking axum-core v0.5.0
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking rw-stream-sink v0.4.0
[INFO] [stderr]     Checking multistream-select v0.13.0
[INFO] [stderr]     Checking yamux v0.12.1
[INFO] [stderr]     Checking futures-ticker v0.0.3
[INFO] [stderr]     Checking yamux v0.13.6
[INFO] [stderr]     Checking quick-protobuf-codec v0.3.1
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking netlink-sys v0.8.7
[INFO] [stderr]     Checking tokio-tungstenite v0.26.2
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking netlink-proto v0.11.5
[INFO] [stderr]     Checking rtnetlink v0.13.1
[INFO] [stderr]     Checking h2 v0.4.12
[INFO] [stderr]     Checking chrono v0.4.39
[INFO] [stderr]     Checking serde_path_to_error v0.1.16
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking if-watch v3.2.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking multiaddr v0.18.2
[INFO] [stderr]     Checking tungstenite v0.21.0
[INFO] [stderr]     Checking hickory-proto v0.24.4
[INFO] [stderr]     Checking libp2p-core v0.41.3
[INFO] [stderr]     Checking tokio-tungstenite v0.21.0
[INFO] [stderr]     Checking libp2p-swarm v0.44.2
[INFO] [stderr]     Checking libp2p-yamux v0.45.2
[INFO] [stderr]     Checking libp2p-tcp v0.41.0
[INFO] [stderr]     Checking libp2p-noise v0.44.0
[INFO] [stderr]     Checking rusqlite v0.33.0
[INFO] [stderr]     Checking libp2p-connection-limits v0.3.1
[INFO] [stderr]     Checking libp2p-mdns v0.45.1
[INFO] [stderr]     Checking libp2p-gossipsub v0.46.1
[INFO] [stderr]     Checking libp2p-identify v0.44.2
[INFO] [stderr]     Checking libp2p-allow-block-list v0.3.0
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking hyper-util v0.1.10
[INFO] [stderr]     Checking libp2p v0.53.2
[INFO] [stderr]     Checking hyper-tungstenite v0.13.0
[INFO] [stderr]     Checking axum v0.8.1
[INFO] [stderr]     Checking wgui v0.1.0 (https://github.com/J45k4/wgui.git?rev=a4e55c81a850c17cc97c4b68f31a3a82f96b5a46#a4e55c81)
[INFO] [stderr]     Checking puppydrive v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::body::Body`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use axum::body::Body;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::extract::Path`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use axum::extract::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::extract::State`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use axum::extract::State;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::http::header`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use axum::http::header;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::http::StatusCode`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use axum::http::StatusCode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::routing::get`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use axum::routing::get;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::body::Body`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use axum::body::Body;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::extract::Path`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use axum::extract::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::extract::State`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use axum::extract::State;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::http::header`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use axum::http::header;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::http::StatusCode`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use axum::http::StatusCode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::routing::get`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use axum::routing::get;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::Json`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use axum::Json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::Router`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use axum::Router;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::Json`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use axum::Json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::get_file_entry`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use db::get_file_entry;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::Router`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use axum::Router;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::get_file_entry`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use db::get_file_entry;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::get_file_location`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use db::get_file_location;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::get_file_location`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use db::get_file_location;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::list_files`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use db::list_files;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::list_files`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use db::list_files;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::open_db`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use db::open_db;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::ListArgs`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use db::ListArgs;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::open_db`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use db::open_db;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http_body_util::StreamBody`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use http_body_util::StreamBody;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use serde_json::json;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::ListArgs`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use db::ListArgs;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use serde_json::Value;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Engine as _` and `engine::general_purpose::URL_SAFE`
[INFO] [stdout]   --> src/main.rs:23:14
[INFO] [stdout]    |
[INFO] [stdout] 23 | use base64::{engine::general_purpose::URL_SAFE, Engine as _};
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http_body_util::StreamBody`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use http_body_util::StreamBody;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IntoResponse` and `Response`
[INFO] [stdout]   --> src/main.rs:24:22
[INFO] [stdout]    |
[INFO] [stdout] 24 | use axum::response::{IntoResponse, Response};
[INFO] [stdout]    |                      ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use serde_json::json;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_util::io::ReaderStream`
[INFO] [stdout]   --> src/main.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use tokio_util::io::ReaderStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/types.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use serde_json::Value;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::DateTime`
[INFO] [stdout]  --> src/types.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chrono::DateTime;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/types.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::protocol::Introduce`
[INFO] [stdout]   --> src/types.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::protocol::Introduce;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Engine as _` and `engine::general_purpose::URL_SAFE`
[INFO] [stdout]   --> src/main.rs:23:14
[INFO] [stdout]    |
[INFO] [stdout] 23 | use base64::{engine::general_purpose::URL_SAFE, Engine as _};
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IntoResponse` and `Response`
[INFO] [stdout]   --> src/main.rs:24:22
[INFO] [stdout]    |
[INFO] [stdout] 24 | use axum::response::{IntoResponse, Response};
[INFO] [stdout]    |                      ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_util::io::ReaderStream`
[INFO] [stdout]   --> src/main.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use tokio_util::io::ReaderStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/types.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::DateTime`
[INFO] [stdout]  --> src/types.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chrono::DateTime;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/types.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::protocol::Introduce`
[INFO] [stdout]   --> src/types.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::protocol::Introduce;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ring`
[INFO] [stdout]   --> src/scan.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[cfg(feature = "ring")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rayon`, and `sha2`
[INFO] [stdout]    = help: consider adding `ring` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ring`
[INFO] [stdout]   --> src/scan.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[cfg(all(not(feature = "ring"), feature = "sha2"))]
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rayon`, and `sha2`
[INFO] [stdout]    = help: consider adding `ring` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::hash`
[INFO] [stdout]  --> src/db.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::hash;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Multiaddr`
[INFO] [stdout]  --> src/app.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | use libp2p::{Multiaddr, PeerId};
[INFO] [stdout]   |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NetworkManager`
[INFO] [stdout]  --> src/app.rs:9:22
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::network::{NetworkManager, NetworkEvent, NetworkCommand};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ring`
[INFO] [stdout]   --> src/scan.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[cfg(feature = "ring")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rayon`, and `sha2`
[INFO] [stdout]    = help: consider adding `ring` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ring`
[INFO] [stdout]   --> src/scan.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[cfg(all(not(feature = "ring"), feature = "sha2"))]
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rayon`, and `sha2`
[INFO] [stdout]    = help: consider adding `ring` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::hash`
[INFO] [stdout]  --> src/db.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::hash;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Multiaddr`
[INFO] [stdout]  --> src/app.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | use libp2p::{Multiaddr, PeerId};
[INFO] [stdout]   |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NetworkManager`
[INFO] [stdout]  --> src/app.rs:9:22
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::network::{NetworkManager, NetworkEvent, NetworkCommand};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ring`
[INFO] [stdout]   --> src/main.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 |     #[cfg(feature = "ring")]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rayon`, and `sha2`
[INFO] [stdout]    = help: consider adding `ring` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ring`
[INFO] [stdout]   --> src/main.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 |     #[cfg(feature = "ring")]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rayon`, and `sha2`
[INFO] [stdout]    = help: consider adding `ring` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Transport`
[INFO] [stdout]  --> src/network.rs:7:57
[INFO] [stdout]   |
[INFO] [stdout] 7 |     tcp, yamux, Multiaddr, PeerId, Swarm, SwarmBuilder, Transport,
[INFO] [stdout]   |                                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Transport`
[INFO] [stdout]  --> src/network.rs:7:57
[INFO] [stdout]   |
[INFO] [stdout] 7 |     tcp, yamux, Multiaddr, PeerId, Swarm, SwarmBuilder, Transport,
[INFO] [stdout]   |                                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/scan.rs:139:7
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let mut scanned: HashMap<PathBuf, FileLocation> = mapped
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/scan.rs:140:17
[INFO] [stdout]     |
[INFO] [stdout] 140 |             .map(|(pbuf, entry)| {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/db.rs:98:6
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let mut sql = String::from(
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/db.rs:102:6
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let mut params: Vec<&dyn ToSql> = Vec::new();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/db.rs:96:38
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn list_files(conn: &Connection, args: ListArgs) -> anyhow::Result<Vec<FileEntry>> {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/scan.rs:139:7
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let mut scanned: HashMap<PathBuf, FileLocation> = mapped
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/scan.rs:140:17
[INFO] [stdout]     |
[INFO] [stdout] 140 |             .map(|(pbuf, entry)| {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/db.rs:98:6
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let mut sql = String::from(
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/db.rs:102:6
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let mut params: Vec<&dyn ToSql> = Vec::new();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/db.rs:96:38
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn list_files(conn: &Connection, args: ListArgs) -> anyhow::Result<Vec<FileEntry>> {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SharedState` is never used
[INFO] [stdout]   --> src/types.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type SharedState = Rc<RefCell<State>>;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `State` is never constructed
[INFO] [stdout]   --> src/types.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct State {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_peer_with_addr` is never used
[INFO] [stdout]   --> src/types.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl State {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 23 |     pub fn get_peer_with_addr(&mut self, addr: &str) -> &mut Peer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `name`, `owner`, `addr`, and `introduced` are never read
[INFO] [stdout]   --> src/types.rs:41:6
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Peer {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 41 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 42 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 43 |     pub owner: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 44 |     pub addr: Option<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 45 |     pub introduced: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Peer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeStatus` is never used
[INFO] [stdout]   --> src/types.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub enum NodeStatus {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/types.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct Node {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileInfo` is never constructed
[INFO] [stdout]   --> src/types.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct FileInfo {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PeerReq` is never constructed
[INFO] [stdout]   --> src/types.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct PeerReq {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeCmdRes` is never used
[INFO] [stdout]   --> src/types.rs:85:10
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub enum NodeCmdRes {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PeerRes` is never constructed
[INFO] [stdout]    --> src/types.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct PeerRes {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PeerMsg` is never used
[INFO] [stdout]    --> src/types.rs:116:10
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub enum PeerMsg {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Event` is never used
[INFO] [stdout]    --> src/types.rs:121:10
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub enum Event {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PeerConnCmd` is never used
[INFO] [stdout]    --> src/types.rs:138:10
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub enum PeerConnCmd {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTRODUCE_CMD` is never used
[INFO] [stdout]  --> src/protocol.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const INTRODUCE_CMD: u16 = 1;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRITE_FILE_CMD` is never used
[INFO] [stdout]  --> src/protocol.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const WRITE_FILE_CMD: u16 = 2;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `READ_FILE_CMD` is never used
[INFO] [stdout]  --> src/protocol.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const READ_FILE_CMD: u16 = 3;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REMOVE_FILE_CMD` is never used
[INFO] [stdout]  --> src/protocol.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const REMOVE_FILE_CMD: u16 = 4;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CREATE_FOLDER_CMD` is never used
[INFO] [stdout]  --> src/protocol.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CREATE_FOLDER_CMD: u16 = 5;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RENAME_FOLDER_CMD` is never used
[INFO] [stdout]  --> src/protocol.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const RENAME_FOLDER_CMD: u16 = 6;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIST_FOLDER_CONTENTS_CMD` is never used
[INFO] [stdout]   --> src/protocol.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const LIST_FOLDER_CONTENTS_CMD: u16 = 7;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `serialize` is never used
[INFO] [stdout]   --> src/protocol.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl PeerCmd {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 62 |     pub fn serialize(&self) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ByteEater` is never constructed
[INFO] [stdout]   --> src/protocol.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | struct ByteEater<'a> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_u16`, and `get_string` are never used
[INFO] [stdout]    --> src/protocol.rs:93:9
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl<'a> ByteEater<'a> {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  93 |     pub fn new(buffer: &'a [u8]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn get_u16(&mut self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn get_string(&mut self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PupynetProtocol` is never constructed
[INFO] [stdout]    --> src/protocol.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct PupynetProtocol {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse`, and `next` are never used
[INFO] [stdout]    --> src/protocol.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl PupynetProtocol {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 117 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn parse(&mut self, data: &[u8]) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn next(&mut self) -> Option<PeerCmd> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Timer` is never constructed
[INFO] [stdout]  --> src/timer.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Timer {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `repeat`, `time`, and `wait` are never used
[INFO] [stdout]   --> src/timer.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Timer {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn repeat(mut self, repeat: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn time(mut self, duration: Duration) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub async fn wait(&mut self) {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha256_hash` is never used
[INFO] [stdout]   --> src/scan.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn sha256_hash<R: Read>(mut reader: R) -> io::Result<[u8; 32]> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_datetime` is never used
[INFO] [stdout]   --> src/scan.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn to_datetime(m: std::io::Result<std::time::SystemTime>) -> Option<chrono::DateTime<chrono::Utc>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_path` is never used
[INFO] [stdout]   --> src/scan.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn handle_path<P: AsRef<Path>>(path: P) -> FileLocation {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_FILE_LOCATION` is never used
[INFO] [stdout]   --> src/scan.rs:80:7
[INFO] [stdout]    |
[INFO] [stdout] 80 | const INSERT_FILE_LOCATION: &str = "INSERT INTO file_locations (node_id, path, hash, size, timestamp, created_at, modified_at, accessed_a...
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPDATE_FILE_LOCATION` is never used
[INFO] [stdout]   --> src/scan.rs:81:7
[INFO] [stdout]    |
[INFO] [stdout] 81 | const UPDATE_FILE_LOCATION: &str = "UPDATE file_locations SET hash = ?, size = ?, timestamp = ?, created_at = ?, modified_at = ?, accesse...
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELETE_FILE_LOCATION` is never used
[INFO] [stdout]   --> src/scan.rs:82:7
[INFO] [stdout]    |
[INFO] [stdout] 82 | const DELETE_FILE_LOCATION: &str = "DELETE FROM file_locations WHERE node_id = ? and path = ?";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPSERT_FILE_ENTRY` is never used
[INFO] [stdout]   --> src/scan.rs:83:7
[INFO] [stdout]    |
[INFO] [stdout] 83 | const UPSERT_FILE_ENTRY: &str = "INSERT INTO file_entries (hash, size, mime_type, first_datetime, latest_datetime) VALUES (?, ?, ?, ?, ?)...
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScanResult` is never constructed
[INFO] [stdout]   --> src/scan.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct ScanResult {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan` is never used
[INFO] [stdout]   --> src/scan.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn scan<P: AsRef<Path>>(node_id: u128, path: P, mut conn: Connection) -> Result<ScanResult, String> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileEntry` is never constructed
[INFO] [stdout]   --> src/db.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct FileEntry {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileLocation` is never constructed
[INFO] [stdout]   --> src/db.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct FileLocation {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ListArgs` is never constructed
[INFO] [stdout]   --> src/db.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct ListArgs {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DB` is never constructed
[INFO] [stdout]   --> src/db.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct DB {
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_files` is never used
[INFO] [stdout]   --> src/db.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn list_files(conn: &Connection, args: ListArgs) -> anyhow::Result<Vec<FileEntry>> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_mime_types` is never used
[INFO] [stdout]    --> src/db.rs:129:14
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub async fn get_mime_types(conn: &Connection) -> anyhow::Result<Vec<String>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_entry` is never used
[INFO] [stdout]    --> src/db.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn get_file_entry(conn: &Connection, hash: &[u8]) -> anyhow::Result<Option<FileEntry>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_location` is never used
[INFO] [stdout]    --> src/db.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn get_file_location(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_db` is never used
[INFO] [stdout]    --> src/db.rs:261:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub fn open_db() -> Connection {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PeerIntroduced` is never constructed
[INFO] [stdout]   --> src/network.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum NetworkEvent {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 21 |     PeerIntroduced(PeerId, Introduce),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SendMessage`, `ConnectToPeer`, and `Broadcast` are never constructed
[INFO] [stdout]   --> src/network.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum NetworkCommand {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 28 |     SendMessage(PeerId, PeerCmd),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 29 |     ConnectToPeer(Multiaddr),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 30 |     Introduce(Introduce),
[INFO] [stdout] 31 |     Broadcast(PeerCmd),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `connected_peers` is never used
[INFO] [stdout]    --> src/network.rs:260:12
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl NetworkManager {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn connected_peers(&self) -> Vec<PeerId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SharedState` is never used
[INFO] [stdout]   --> src/types.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type SharedState = Rc<RefCell<State>>;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `State` is never constructed
[INFO] [stdout]   --> src/types.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct State {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_peer_with_addr` is never used
[INFO] [stdout]   --> src/types.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl State {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 23 |     pub fn get_peer_with_addr(&mut self, addr: &str) -> &mut Peer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `name`, `owner`, `addr`, and `introduced` are never read
[INFO] [stdout]   --> src/types.rs:41:6
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Peer {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 41 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 42 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 43 |     pub owner: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 44 |     pub addr: Option<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 45 |     pub introduced: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Peer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeStatus` is never used
[INFO] [stdout]   --> src/types.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub enum NodeStatus {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/types.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct Node {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileInfo` is never constructed
[INFO] [stdout]   --> src/types.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct FileInfo {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PeerReq` is never constructed
[INFO] [stdout]   --> src/types.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct PeerReq {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeCmdRes` is never used
[INFO] [stdout]   --> src/types.rs:85:10
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub enum NodeCmdRes {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PeerRes` is never constructed
[INFO] [stdout]    --> src/types.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct PeerRes {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PeerMsg` is never used
[INFO] [stdout]    --> src/types.rs:116:10
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub enum PeerMsg {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Event` is never used
[INFO] [stdout]    --> src/types.rs:121:10
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub enum Event {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PeerConnCmd` is never used
[INFO] [stdout]    --> src/types.rs:138:10
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub enum PeerConnCmd {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTRODUCE_CMD` is never used
[INFO] [stdout]  --> src/protocol.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const INTRODUCE_CMD: u16 = 1;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRITE_FILE_CMD` is never used
[INFO] [stdout]  --> src/protocol.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const WRITE_FILE_CMD: u16 = 2;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `READ_FILE_CMD` is never used
[INFO] [stdout]  --> src/protocol.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const READ_FILE_CMD: u16 = 3;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REMOVE_FILE_CMD` is never used
[INFO] [stdout]  --> src/protocol.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const REMOVE_FILE_CMD: u16 = 4;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CREATE_FOLDER_CMD` is never used
[INFO] [stdout]  --> src/protocol.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CREATE_FOLDER_CMD: u16 = 5;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RENAME_FOLDER_CMD` is never used
[INFO] [stdout]  --> src/protocol.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const RENAME_FOLDER_CMD: u16 = 6;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIST_FOLDER_CONTENTS_CMD` is never used
[INFO] [stdout]   --> src/protocol.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const LIST_FOLDER_CONTENTS_CMD: u16 = 7;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `serialize` is never used
[INFO] [stdout]   --> src/protocol.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl PeerCmd {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 62 |     pub fn serialize(&self) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ByteEater` is never constructed
[INFO] [stdout]   --> src/protocol.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | struct ByteEater<'a> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_u16`, and `get_string` are never used
[INFO] [stdout]    --> src/protocol.rs:93:9
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl<'a> ByteEater<'a> {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  93 |     pub fn new(buffer: &'a [u8]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn get_u16(&mut self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn get_string(&mut self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PupynetProtocol` is never constructed
[INFO] [stdout]    --> src/protocol.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct PupynetProtocol {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse`, and `next` are never used
[INFO] [stdout]    --> src/protocol.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl PupynetProtocol {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 117 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn parse(&mut self, data: &[u8]) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn next(&mut self) -> Option<PeerCmd> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Timer` is never constructed
[INFO] [stdout]  --> src/timer.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Timer {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `repeat`, `time`, and `wait` are never used
[INFO] [stdout]   --> src/timer.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Timer {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn repeat(mut self, repeat: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn time(mut self, duration: Duration) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub async fn wait(&mut self) {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha256_hash` is never used
[INFO] [stdout]   --> src/scan.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn sha256_hash<R: Read>(mut reader: R) -> io::Result<[u8; 32]> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_datetime` is never used
[INFO] [stdout]   --> src/scan.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn to_datetime(m: std::io::Result<std::time::SystemTime>) -> Option<chrono::DateTime<chrono::Utc>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_path` is never used
[INFO] [stdout]   --> src/scan.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn handle_path<P: AsRef<Path>>(path: P) -> FileLocation {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_FILE_LOCATION` is never used
[INFO] [stdout]   --> src/scan.rs:80:7
[INFO] [stdout]    |
[INFO] [stdout] 80 | const INSERT_FILE_LOCATION: &str = "INSERT INTO file_locations (node_id, path, hash, size, timestamp, created_at, modified_at, accessed_a...
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPDATE_FILE_LOCATION` is never used
[INFO] [stdout]   --> src/scan.rs:81:7
[INFO] [stdout]    |
[INFO] [stdout] 81 | const UPDATE_FILE_LOCATION: &str = "UPDATE file_locations SET hash = ?, size = ?, timestamp = ?, created_at = ?, modified_at = ?, accesse...
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELETE_FILE_LOCATION` is never used
[INFO] [stdout]   --> src/scan.rs:82:7
[INFO] [stdout]    |
[INFO] [stdout] 82 | const DELETE_FILE_LOCATION: &str = "DELETE FROM file_locations WHERE node_id = ? and path = ?";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPSERT_FILE_ENTRY` is never used
[INFO] [stdout]   --> src/scan.rs:83:7
[INFO] [stdout]    |
[INFO] [stdout] 83 | const UPSERT_FILE_ENTRY: &str = "INSERT INTO file_entries (hash, size, mime_type, first_datetime, latest_datetime) VALUES (?, ?, ?, ?, ?)...
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScanResult` is never constructed
[INFO] [stdout]   --> src/scan.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct ScanResult {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan` is never used
[INFO] [stdout]   --> src/scan.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn scan<P: AsRef<Path>>(node_id: u128, path: P, mut conn: Connection) -> Result<ScanResult, String> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileEntry` is never constructed
[INFO] [stdout]   --> src/db.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct FileEntry {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileLocation` is never constructed
[INFO] [stdout]   --> src/db.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct FileLocation {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ListArgs` is never constructed
[INFO] [stdout]   --> src/db.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct ListArgs {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DB` is never constructed
[INFO] [stdout]   --> src/db.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct DB {
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_files` is never used
[INFO] [stdout]   --> src/db.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn list_files(conn: &Connection, args: ListArgs) -> anyhow::Result<Vec<FileEntry>> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_mime_types` is never used
[INFO] [stdout]    --> src/db.rs:129:14
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub async fn get_mime_types(conn: &Connection) -> anyhow::Result<Vec<String>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_entry` is never used
[INFO] [stdout]    --> src/db.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn get_file_entry(conn: &Connection, hash: &[u8]) -> anyhow::Result<Option<FileEntry>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_location` is never used
[INFO] [stdout]    --> src/db.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn get_file_location(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_db` is never used
[INFO] [stdout]    --> src/db.rs:261:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub fn open_db() -> Connection {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PeerIntroduced` is never constructed
[INFO] [stdout]   --> src/network.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum NetworkEvent {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 21 |     PeerIntroduced(PeerId, Introduce),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SendMessage`, `ConnectToPeer`, and `Broadcast` are never constructed
[INFO] [stdout]   --> src/network.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum NetworkCommand {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 28 |     SendMessage(PeerId, PeerCmd),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 29 |     ConnectToPeer(Multiaddr),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 30 |     Introduce(Introduce),
[INFO] [stdout] 31 |     Broadcast(PeerCmd),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `connected_peers` is never used
[INFO] [stdout]    --> src/network.rs:260:12
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl NetworkManager {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn connected_peers(&self) -> Vec<PeerId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: ControlFlow<Result<Infallible, Infallible>, SwarmBuilder<libp2p::builder::phase::provider::Tokio, libp2p::builder::phase::swarm::SwarmPhase<impl libp2p::builder::phase::AuthenticatedMultiplexedTransport, PuppyDriveBehaviour>>>
[INFO] [stdout]    --> src/network.rs:98:21
[INFO] [stdout]     |
[INFO] [stdout]  98 |           let swarm = SwarmBuilder::with_new_identity()
[INFO] [stdout]     |  _____________________^
[INFO] [stdout]  99 | |             .with_tokio()
[INFO] [stdout] 100 | |             .with_tcp(
[INFO] [stdout] 101 | |                 tcp::Config::default(),
[INFO] [stdout] ...   |
[INFO] [stdout] 107 | |                 PuppyDriveBehaviour::new(key).unwrap()
[INFO] [stdout] 108 | |             })?
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<SwarmBuilder<libp2p::builder::phase::provider::Tokio, libp2p::builder::phase::swarm::SwarmPhase<impl libp2p::builder::phase::AuthenticatedMultiplexedTransport, PuppyDriveBehaviour>>, Infallible>
[INFO] [stdout]    --> src/network.rs:98:21
[INFO] [stdout]     |
[INFO] [stdout]  98 |           let swarm = SwarmBuilder::with_new_identity()
[INFO] [stdout]     |  _____________________^
[INFO] [stdout]  99 | |             .with_tokio()
[INFO] [stdout] 100 | |             .with_tcp(
[INFO] [stdout] 101 | |                 tcp::Config::default(),
[INFO] [stdout] ...   |
[INFO] [stdout] 107 | |                 PuppyDriveBehaviour::new(key).unwrap()
[INFO] [stdout] 108 | |             })?
[INFO] [stdout]     | |______________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: ControlFlow<Result<Infallible, Infallible>, SwarmBuilder<libp2p::builder::phase::provider::Tokio, libp2p::builder::phase::swarm::SwarmPhase<impl libp2p::builder::phase::AuthenticatedMultiplexedTransport, PuppyDriveBehaviour>>>
[INFO] [stdout]    --> src/network.rs:98:21
[INFO] [stdout]     |
[INFO] [stdout]  98 |           let swarm = SwarmBuilder::with_new_identity()
[INFO] [stdout]     |  _____________________^
[INFO] [stdout]  99 | |             .with_tokio()
[INFO] [stdout] 100 | |             .with_tcp(
[INFO] [stdout] 101 | |                 tcp::Config::default(),
[INFO] [stdout] ...   |
[INFO] [stdout] 107 | |                 PuppyDriveBehaviour::new(key).unwrap()
[INFO] [stdout] 108 | |             })?
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<SwarmBuilder<libp2p::builder::phase::provider::Tokio, libp2p::builder::phase::swarm::SwarmPhase<impl libp2p::builder::phase::AuthenticatedMultiplexedTransport, PuppyDriveBehaviour>>, Infallible>
[INFO] [stdout]    --> src/network.rs:98:21
[INFO] [stdout]     |
[INFO] [stdout]  98 |           let swarm = SwarmBuilder::with_new_identity()
[INFO] [stdout]     |  _____________________^
[INFO] [stdout]  99 | |             .with_tokio()
[INFO] [stdout] 100 | |             .with_tcp(
[INFO] [stdout] 101 | |                 tcp::Config::default(),
[INFO] [stdout] ...   |
[INFO] [stdout] 107 | |                 PuppyDriveBehaviour::new(key).unwrap()
[INFO] [stdout] 108 | |             })?
[INFO] [stdout]     | |______________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `puppydrive` (bin "puppydrive" test) due to 2 previous errors; 84 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `puppydrive` (bin "puppydrive") due to 2 previous errors; 84 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "c541b6d77a463b2b63405fdf651cad102e2f55d212e410ad18bf818efdd1b4cb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c541b6d77a463b2b63405fdf651cad102e2f55d212e410ad18bf818efdd1b4cb", kill_on_drop: false }`
[INFO] [stdout] c541b6d77a463b2b63405fdf651cad102e2f55d212e410ad18bf818efdd1b4cb
