[INFO] cloning repository https://github.com/mawalu/learning-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mawalu/learning-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmawalu%2Flearning-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmawalu%2Flearning-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4d255f7af215fc75fe25847731098536b1eb8deb
[INFO] checking mawalu/learning-rust against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmawalu%2Flearning-rust" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/mawalu/learning-rust on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/mawalu/learning-rust
[INFO] finished tweaking git repo https://github.com/mawalu/learning-rust
[INFO] tweaked toml for git repo https://github.com/mawalu/learning-rust written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/mawalu/learning-rust 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" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_derive v1.0.105
[INFO] [stderr]   Downloaded quote v1.0.3
[INFO] [stderr]   Downloaded num-integer v0.1.42
[INFO] [stderr]   Downloaded proc-macro2 v1.0.9
[INFO] [stderr]   Downloaded serde_bytes v0.10.5
[INFO] [stderr]   Downloaded chrono v0.4.11
[INFO] [stderr]   Downloaded syn v1.0.17
[INFO] [stderr]   Downloaded libc v0.2.68
[INFO] [stderr]   Downloaded serde_bencode v0.2.1
[INFO] [stderr]   Downloaded serde v1.0.105
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a743c0d2eca83869b9171a338ad97adeaa79c2db40a170c739fcefbc995e63f3
[INFO] running `Command { std: "docker" "start" "-a" "a743c0d2eca83869b9171a338ad97adeaa79c2db40a170c739fcefbc995e63f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a743c0d2eca83869b9171a338ad97adeaa79c2db40a170c739fcefbc995e63f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a743c0d2eca83869b9171a338ad97adeaa79c2db40a170c739fcefbc995e63f3", kill_on_drop: false }`
[INFO] [stdout] a743c0d2eca83869b9171a338ad97adeaa79c2db40a170c739fcefbc995e63f3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5c5034ceefc430c7c97bfd181ca68f22d4cbd651f29aa876bda15f553ef75c1e
[INFO] running `Command { std: "docker" "start" "-a" "5c5034ceefc430c7c97bfd181ca68f22d4cbd651f29aa876bda15f553ef75c1e", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.9
[INFO] [stderr]    Compiling libc v0.2.68
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.17
[INFO] [stderr]    Compiling typenum v1.11.2
[INFO] [stderr]    Compiling serde v1.0.105
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]     Checking ppv-lite86 v0.2.6
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]     Checking getrandom v0.1.14
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]    Compiling quote v1.0.3
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking generic-array v0.12.3
[INFO] [stderr]     Checking chrono v0.4.11
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking digest v0.8.1
[INFO] [stderr]     Checking block-buffer v0.7.3
[INFO] [stderr]     Checking sha-1 v0.8.2
[INFO] [stderr]    Compiling serde_derive v1.0.105
[INFO] [stderr]     Checking serde_bytes v0.10.5
[INFO] [stderr]     Checking serde_bencode v0.2.1
[INFO] [stderr]     Checking bittorent v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/structs/bucket.rs:5:29
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]   |                             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::util::*`
[INFO] [stdout]  --> src/structs/message.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use super::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/structs/token.rs:58:6
[INFO] [stdout]    |
[INFO] [stdout] 58 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `handler::DhtHandler`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use handler::DhtHandler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `handler::DhtHandler`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use handler::DhtHandler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/handler.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 id,
[INFO] [stdout]     |                 ^^ help: try ignoring the field: `id: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]    --> src/handler.rs:130:17
[INFO] [stdout]     |
[INFO] [stdout] 130 |                 client,
[INFO] [stdout]     |                 ^^^^^^ help: try ignoring the field: `client: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nodes`
[INFO] [stdout]    --> src/handler.rs:142:63
[INFO] [stdout]     |
[INFO] [stdout] 142 |                     Response::FoundNodes { id: sender_string, nodes } => {
[INFO] [stdout]     |                                                               ^^^^^ help: try ignoring the field: `nodes: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender`
[INFO] [stdout]    --> src/handler.rs:143:29
[INFO] [stdout]     |
[INFO] [stdout] 143 |                         let sender = HashId::from_str(sender_string);
[INFO] [stdout]     |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_id`
[INFO] [stdout]   --> src/structs/bucket.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn try_insert(&mut self, our_id: &HashId, new_node: Node) {
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_node`
[INFO] [stdout]   --> src/structs/bucket.rs:43:51
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn try_insert(&mut self, our_id: &HashId, new_node: Node) {
[INFO] [stdout]    |                                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/handler.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 id,
[INFO] [stdout]     |                 ^^ help: try ignoring the field: `id: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]    --> src/handler.rs:130:17
[INFO] [stdout]     |
[INFO] [stdout] 130 |                 client,
[INFO] [stdout]     |                 ^^^^^^ help: try ignoring the field: `client: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nodes`
[INFO] [stdout]    --> src/handler.rs:142:63
[INFO] [stdout]     |
[INFO] [stdout] 142 |                     Response::FoundNodes { id: sender_string, nodes } => {
[INFO] [stdout]     |                                                               ^^^^^ help: try ignoring the field: `nodes: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender`
[INFO] [stdout]    --> src/handler.rs:143:29
[INFO] [stdout]     |
[INFO] [stdout] 143 |                         let sender = HashId::from_str(sender_string);
[INFO] [stdout]     |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_id`
[INFO] [stdout]   --> src/structs/bucket.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn try_insert(&mut self, our_id: &HashId, new_node: Node) {
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_node`
[INFO] [stdout]   --> src/structs/bucket.rs:43:51
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn try_insert(&mut self, our_id: &HashId, new_node: Node) {
[INFO] [stdout]    |                                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `node`, `buckets`, `identifier`, `peers`, and `signer` are never read
[INFO] [stdout]   --> src/handler.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct DhtHandler {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 10 |     node: Node,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 11 |     buckets: Kbuckets,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 12 |     identifier: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     peers: PeerList,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 14 |     signer: TokenAuthority
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DhtHandler` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `handle_str`, `handel_message`, `response`, and `protocol_error` are never used
[INFO] [stdout]    --> src/handler.rs:18:12
[INFO] [stdout]     |
[INFO] [stdout] 17  | impl DhtHandler {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 18  |     pub fn new(node: Node) -> DhtHandler {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28  |     pub fn handle_str(&mut self, input: String) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40  |     fn handel_message(&mut self, message: Message, endpoint: Endpoint) -> Result<Option<Message>, InvalidHashIdError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn response (&self, id: &String, response: Response) -> Result<Option<Message>, InvalidHashIdError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn protocol_error (&self, id: &String) -> Result<Option<Message>, InvalidHashIdError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup` is never used
[INFO] [stdout]    --> src/handler.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 |     fn setup () -> DhtHandler {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `buckets` is never read
[INFO] [stdout]  --> src/structs/bucket.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Kbuckets {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 9 |     buckets: Vec<Bucket>,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Kbuckets` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/structs/bucket.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout] 12  | impl Kbuckets {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 13  |     pub fn new() -> Kbuckets {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19  |     pub fn find_closest_nodes(&self, id: &HashId) -> Option<Vec<Node>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43  |     pub fn try_insert(&mut self, our_id: &HashId, new_node: Node) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50  |     fn try_extend(&self, merged: &mut Vec<Node>, start: usize, offset: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66  |     pub fn find_index(&self, id: &HashId) -> Option<(usize, &Bucket)> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76  |     pub fn find(&self, id: &HashId) -> Option<&Bucket> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83  |     pub fn find_index_mut(&mut self, id: HashId) -> Option<(usize, &mut Bucket)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn find_mut(&mut self, id: HashId) -> Option<&mut Bucket> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn update_timestamps(&mut self, id: &HashId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn split(&mut self, id: HashId) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_changed` is never read
[INFO] [stdout]    --> src/structs/bucket.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct Bucket {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 129 |     last_changed: DateTime<Utc>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Bucket` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SIZE`, `new`, `insert`, `find_mut`, `update_timestamps`, and `questionables` are never used
[INFO] [stdout]    --> src/structs/bucket.rs:133:11
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl Bucket {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 133 |     const SIZE: usize = 8;
[INFO] [stdout]     |           ^^^^
[INFO] [stdout] 134 |
[INFO] [stdout] 135 |     pub fn new(upper_boundary: HashId) -> Bucket {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn insert(&mut self, node: Node) -> Result<(), BucketError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn find_mut(&mut self, id: &HashId) -> Option<&mut Node> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn update_timestamps(&mut self, id: &HashId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn questionables(&self) -> Vec<&Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/structs/error.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl BucketError {
[INFO] [stdout]   | ---------------- associated function in this implementation
[INFO] [stdout] 8 |     pub fn new(message: String) -> BucketError {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/structs/message.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ErrorResponse {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 13 |     pub fn new(code: u8, message: String) -> ErrorResponse {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_str` and `to_str` are never used
[INFO] [stdout]    --> src/structs/message.rs:96:12
[INFO] [stdout]     |
[INFO] [stdout] 95  | impl Message {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 96  |     pub fn from_str(input: String) -> Result<Message, serde_bencode::error::Error> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn to_str(&self) -> Result<String, serde_bencode::error::Error> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_str` and `questionable` are never used
[INFO] [stdout]   --> src/structs/node.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Node {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn to_str(&self) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn questionable(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_compact` and `to_string` are never used
[INFO] [stdout]   --> src/structs/node.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl Endpoint {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn to_compact(&self) -> [u8; 6] {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn to_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_str` and `to_str` are never used
[INFO] [stdout]   --> src/structs/util.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl HashId {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn from_str(input: String) -> Result<HashId, InvalidHashIdError> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn to_str(&self) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `current_secret` and `last_secret` are never read
[INFO] [stdout]   --> src/structs/token.rs:9:2
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub struct TokenAuthority {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 9  |     current_secret: Secret,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     last_secret: Secret
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenAuthority` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `rotate`, `sign`, `verify`, `random_secret`, and `sign_with` are never used
[INFO] [stdout]   --> src/structs/token.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl TokenAuthority {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new() -> TokenAuthority {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn rotate(&mut self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn sign(&self, data: &Endpoint) -> String {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn verify(&self, token: &String, data: &Endpoint) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn random_secret() -> Secret {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn sign_with(data: &Endpoint, secret: &Secret) -> String {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 25 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `try_insert` and `find` are never used
[INFO] [stdout]   --> src/structs/bucket.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Kbuckets {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn try_insert(&mut self, our_id: &HashId, new_node: Node) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn find(&self, id: &HashId) -> Option<&Bucket> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 8 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 5.82s
[INFO] running `Command { std: "docker" "inspect" "5c5034ceefc430c7c97bfd181ca68f22d4cbd651f29aa876bda15f553ef75c1e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5c5034ceefc430c7c97bfd181ca68f22d4cbd651f29aa876bda15f553ef75c1e", kill_on_drop: false }`
[INFO] [stdout] 5c5034ceefc430c7c97bfd181ca68f22d4cbd651f29aa876bda15f553ef75c1e
