[INFO] cloning repository https://github.com/alexcatdogiscool/distr-asg2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alexcatdogiscool/distr-asg2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexcatdogiscool%2Fdistr-asg2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexcatdogiscool%2Fdistr-asg2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f1b162a93a66003403beb02392f1cd9c494a4703
[INFO] checking alexcatdogiscool/distr-asg2 against master#1b8f2e46e14b08208a53585570edd9206374aae8 for pr-155418
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexcatdogiscool%2Fdistr-asg2" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/alexcatdogiscool/distr-asg2
[INFO] finished tweaking git repo https://github.com/alexcatdogiscool/distr-asg2
[INFO] tweaked toml for git repo https://github.com/alexcatdogiscool/distr-asg2 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/alexcatdogiscool/distr-asg2 on toolchain 1b8f2e46e14b08208a53585570edd9206374aae8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1b8f2e46e14b08208a53585570edd9206374aae8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/alexcatdogiscool/distr-asg2 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" "+1b8f2e46e14b08208a53585570edd9206374aae8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.116
[INFO] [stderr]   Downloaded data-encoding-macro-internal v0.1.17
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.116
[INFO] [stderr]   Downloaded if-watch v3.2.2
[INFO] [stderr]   Downloaded netlink-sys v0.8.8
[INFO] [stderr]   Downloaded if-addrs v0.15.0
[INFO] [stderr]   Downloaded line-clipping v0.3.7
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.116
[INFO] [stderr]   Downloaded local-ip-address v0.6.11
[INFO] [stderr]   Downloaded netlink-proto v0.12.0
[INFO] [stderr]   Downloaded libp2p-tcp v0.44.1
[INFO] [stderr]   Downloaded js-sys v0.3.93
[INFO] [stderr]   Downloaded libp2p-rendezvous v0.17.1
[INFO] [stderr]   Downloaded netlink-packet-core v0.8.1
[INFO] [stderr]   Downloaded match-lookup v0.1.2
[INFO] [stderr]   Downloaded yamux v0.13.10
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.116
[INFO] [stderr]   Downloaded rtnetlink v0.20.0
[INFO] [stderr]   Downloaded data-encoding-macro v0.1.19
[INFO] [stderr]   Downloaded libp2p-core v0.43.2
[INFO] [stderr]   Downloaded libp2p-swarm v0.47.1
[INFO] [stderr]   Downloaded libp2p-kad v0.48.0
[INFO] [stderr]   Downloaded libp2p-gossipsub v0.49.4
[INFO] [stderr]   Downloaded rusqlite v0.39.0
[INFO] [stderr]   Downloaded netlink-packet-route v0.28.0
[INFO] [stderr]   Downloaded libsqlite3-sys v0.37.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1b8f2e46e14b08208a53585570edd9206374aae8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5a31ca0dff5ba9424acb1fa808ca2a11fa35cf274b83fac71987437cd8506b81
[INFO] running `Command { std: "docker" "start" "-a" "5a31ca0dff5ba9424acb1fa808ca2a11fa35cf274b83fac71987437cd8506b81", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5a31ca0dff5ba9424acb1fa808ca2a11fa35cf274b83fac71987437cd8506b81", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5a31ca0dff5ba9424acb1fa808ca2a11fa35cf274b83fac71987437cd8506b81", kill_on_drop: false }`
[INFO] [stdout] 5a31ca0dff5ba9424acb1fa808ca2a11fa35cf274b83fac71987437cd8506b81
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1b8f2e46e14b08208a53585570edd9206374aae8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c9d9a581fe9c04bcbc06cc342e2b71837f61942ca8619afb57dbf6e6ef7a0dca
[INFO] running `Command { std: "docker" "start" "-a" "c9d9a581fe9c04bcbc06cc342e2b71837f61942ca8619afb57dbf6e6ef7a0dca", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]     Checking futures-core v0.3.32
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]     Checking unsigned-varint v0.8.0
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]    Compiling match-lookup v0.1.2
[INFO] [stderr]     Checking quick-protobuf v0.8.1
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking core2 v0.4.0
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking const-str v0.4.3
[INFO] [stderr]     Checking base-x v0.2.11
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking multihash v0.19.3
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking bs58 v0.5.1
[INFO] [stderr]     Checking unsigned-varint v0.7.2
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]     Checking num_threads v0.1.7
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling libp2p-swarm-derive v0.35.1
[INFO] [stderr]     Checking base256emoji v1.0.2
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]     Checking netlink-packet-core v0.8.1
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]     Checking rusticata-macros v4.1.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling data-encoding-macro-internal v0.1.17
[INFO] [stderr]    Compiling asn1-rs-derive v0.6.0
[INFO] [stderr]     Checking rustls-pki-types v1.14.0
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]    Compiling asn1-rs-impl v0.2.0
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling oid-registry v0.8.1
[INFO] [stderr]     Checking data-encoding-macro v0.1.19
[INFO] [stderr]     Checking pin-project v1.1.11
[INFO] [stderr]     Checking multibase v0.9.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking netlink-packet-route v0.28.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking unicode-truncate v2.0.1
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]     Checking lru v0.16.3
[INFO] [stderr]     Checking kasuari v0.4.12
[INFO] [stderr]    Compiling quinn-udp v0.5.14
[INFO] [stderr]     Checking libp2p-identity v0.2.13
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling prost-derive v0.14.3
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]     Checking multiaddr v0.18.2
[INFO] [stderr]     Checking asn1-rs v0.7.1
[INFO] [stderr]     Checking yasna v0.5.2
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking asynchronous-codec v0.7.0
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]     Checking futures-bounded v0.2.4
[INFO] [stderr]     Checking quick-protobuf-codec v0.3.1
[INFO] [stderr]     Checking rw-stream-sink v0.4.0
[INFO] [stderr]     Checking multistream-select v0.13.0
[INFO] [stderr]     Checking ratatui-core v0.1.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking libp2p-core v0.43.2
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking pem v3.0.6
[INFO] [stderr]     Checking der-parser v10.0.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling snow v0.9.6
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling quinn v0.11.9
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]     Checking rustc-hash v2.1.2
[INFO] [stderr]     Checking lru-slab v0.1.2
[INFO] [stderr]    Compiling prost v0.14.3
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]     Checking x509-parser v0.17.0
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling prost-types v0.14.3
[INFO] [stderr]    Compiling petgraph v0.8.3
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]     Checking hashlink v0.11.0
[INFO] [stderr]     Checking cbor4ii v0.3.3
[INFO] [stderr]     Checking line-clipping v0.3.7
[INFO] [stderr]    Compiling multimap v0.10.1
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking derive_builder v0.20.2
[INFO] [stderr]     Checking uint v0.10.0
[INFO] [stderr]     Checking hickory-proto v0.25.2
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]    Compiling getset v0.1.6
[INFO] [stderr]    Compiling neli-proc-macros v0.2.2
[INFO] [stderr]     Checking yamux v0.13.10
[INFO] [stderr]     Checking libp2p-swarm v0.47.1
[INFO] [stderr]     Checking netlink-sys v0.8.8
[INFO] [stderr]     Checking rustls-webpki v0.103.10
[INFO] [stderr]     Checking rcgen v0.13.2
[INFO] [stderr]     Checking yamux v0.12.1
[INFO] [stderr]     Checking x25519-dalek v2.0.1
[INFO] [stderr]     Checking netlink-proto v0.12.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]     Checking bimap v0.6.3
[INFO] [stderr]     Checking hex_fmt v0.3.0
[INFO] [stderr]     Checking ratatui-macros v0.7.0
[INFO] [stderr]     Checking ratatui-crossterm v0.1.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking libp2p-noise v0.46.1
[INFO] [stderr]     Checking libp2p-yamux v0.47.0
[INFO] [stderr]     Checking clap v4.6.0
[INFO] [stderr]     Checking rtnetlink v0.20.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking ratatui v0.30.0
[INFO] [stderr]    Compiling prost-build v0.14.3
[INFO] [stderr]     Checking libp2p-request-response v0.29.0
[INFO] [stderr]     Checking libp2p-gossipsub v0.49.4
[INFO] [stderr]     Checking libp2p-kad v0.48.0
[INFO] [stderr]     Checking libp2p-connection-limits v0.6.0
[INFO] [stderr]     Checking libp2p-allow-block-list v0.6.0
[INFO] [stderr]     Checking libp2p-identify v0.47.0
[INFO] [stderr]     Checking neli v0.7.4
[INFO] [stderr]     Checking uuid v1.23.0
[INFO] [stderr]     Checking libp2p-rendezvous v0.17.1
[INFO] [stderr]     Checking if-watch v3.2.2
[INFO] [stderr]     Checking libp2p-tcp v0.44.1
[INFO] [stderr]    Compiling asg2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking libp2p-mdns v0.48.0
[INFO] [stderr]     Checking quinn-proto v0.11.14
[INFO] [stderr]     Checking futures-rustls v0.26.0
[INFO] [stderr]     Checking libp2p-tls v0.6.2
[INFO] [stderr]     Checking local-ip-address v0.6.11
[INFO] [stderr]     Checking libp2p-quic v0.13.0
[INFO] [stderr]     Checking libp2p v0.56.0
[INFO] [stderr]     Checking rusqlite v0.39.0
[INFO] [stdout] warning: unused imports: `BufReader`, `fs::File`, `select`, `self`, and `stdin`
[INFO] [stdout]  --> src/main.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 |     io::{self, stdin, BufReader, AsyncBufReadExt, AsyncReadExt},
[INFO] [stdout]   |          ^^^^  ^^^^^  ^^^^^^^^^
[INFO] [stdout] 3 |     select,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 4 |     fs::File,
[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 imports: `BufReader`, `fs::File`, `select`, `self`, and `stdin`
[INFO] [stdout]  --> src/main.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 |     io::{self, stdin, BufReader, AsyncBufReadExt, AsyncReadExt},
[INFO] [stdout]   |          ^^^^  ^^^^^  ^^^^^^^^^
[INFO] [stdout] 3 |     select,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 4 |     fs::File,
[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 imports: `Behaviour`, `Event as KadEvent`, `PublishError`, `QueryResult`, `cbor::codec::Codec`, and `self`
[INFO] [stdout]   --> src/main.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 |     gossipsub::{self, PublishError},
[INFO] [stdout]    |                       ^^^^^^^^^^^^
[INFO] [stdout] 12 |     identity::Keypair,
[INFO] [stdout] 13 |     kad::{Behaviour as KadBehaviour, Config as KadConfig, Event as KadEvent, Mode, QueryResult, store::MemoryStore},
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^        ^^^^^^^^^^^
[INFO] [stdout] 14 |     mdns, noise,
[INFO] [stdout] 15 |     request_response::{self, Behaviour, ProtocolSupport, cbor::codec::Codec},
[INFO] [stdout]    |                              ^^^^^^^^^                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     swarm::{self, NetworkBehaviour, SwarmEvent},
[INFO] [stdout]    |             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Behaviour`, `Event as KadEvent`, `PublishError`, `QueryResult`, `cbor::codec::Codec`, and `self`
[INFO] [stdout]   --> src/main.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 |     gossipsub::{self, PublishError},
[INFO] [stdout]    |                       ^^^^^^^^^^^^
[INFO] [stdout] 12 |     identity::Keypair,
[INFO] [stdout] 13 |     kad::{Behaviour as KadBehaviour, Config as KadConfig, Event as KadEvent, Mode, QueryResult, store::MemoryStore},
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^        ^^^^^^^^^^^
[INFO] [stdout] 14 |     mdns, noise,
[INFO] [stdout] 15 |     request_response::{self, Behaviour, ProtocolSupport, cbor::codec::Codec},
[INFO] [stdout]    |                              ^^^^^^^^^                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     swarm::{self, NetworkBehaviour, SwarmEvent},
[INFO] [stdout]    |             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `task::Poll`
[INFO] [stdout]   --> src/main.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 | use futures::{StreamExt, task::Poll};
[INFO] [stdout]    |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `task::Poll`
[INFO] [stdout]   --> src/main.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 | use futures::{StreamExt, task::Poll};
[INFO] [stdout]    |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ed25519_dalek::Signature`
[INFO] [stdout]   --> src/main.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use ed25519_dalek::Signature;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ed25519_dalek::Signature`
[INFO] [stdout]   --> src/main.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use ed25519_dalek::Signature;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rng`
[INFO] [stdout]   --> src/main.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | use rand::{Rng, rngs::OsRng};
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rng`
[INFO] [stdout]   --> src/main.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | use rand::{Rng, rngs::OsRng};
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DefaultHasher`, `Hash`, `Hasher`, `net::Incoming`, `process::exit`, and `u8::MIN`
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         DefaultHasher,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 28 |         Hash,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 29 |         Hasher
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 30 |     }, io::stdout, net::Incoming, num::NonZero, process::exit, time::Duration, u8::MIN};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^                ^^^^^^^^^^^^^                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DefaultHasher`, `Hash`, `Hasher`, `net::Incoming`, `process::exit`, and `u8::MIN`
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         DefaultHasher,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 28 |         Hash,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 29 |         Hasher
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 30 |     }, io::stdout, net::Incoming, num::NonZero, process::exit, time::Duration, u8::MIN};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^                ^^^^^^^^^^^^^                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Result as SqResult`
[INFO] [stdout]   --> src/main.rs:37:28
[INFO] [stdout]    |
[INFO] [stdout] 37 | use rusqlite::{Connection, Result as SqResult};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Result as SqResult`
[INFO] [stdout]   --> src/main.rs:37:28
[INFO] [stdout]    |
[INFO] [stdout] 37 | use rusqlite::{Connection, Result as SqResult};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyEventKind`, `KeyEvent`, and `cursor`
[INFO] [stdout]   --> src/main.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 | use crossterm::{cursor, event::{self, Event, KeyCode, KeyEvent, KeyEventKind}, terminal::{disable_raw_mode, enable_raw_mode}};
[INFO] [stdout]    |                 ^^^^^^                                ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyEventKind`, `KeyEvent`, and `cursor`
[INFO] [stdout]   --> src/main.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 | use crossterm::{cursor, event::{self, Event, KeyCode, KeyEvent, KeyEventKind}, terminal::{disable_raw_mode, enable_raw_mode}};
[INFO] [stdout]    |                 ^^^^^^                                ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Buffer`, `Cell`, `DefaultTerminal`, `Modifier`, `Rect`, `Text`, and `Widget`
[INFO] [stdout]   --> src/main.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     DefaultTerminal,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     Frame, Terminal,
[INFO] [stdout] 42 |     buffer::{Buffer, Cell},
[INFO] [stdout]    |              ^^^^^^  ^^^^
[INFO] [stdout] 43 |     layout::{Constraint, Direction, Layout, Rect},
[INFO] [stdout]    |                                             ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     text::{Line, Text},
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 48 |     widgets::{Block, Borders, List, ListDirection, ListItem, ListState, Paragraph, Widget},
[INFO] [stdout]    |                                                                                    ^^^^^^
[INFO] [stdout] 49 |     style::{Style, Color, Modifier},
[INFO] [stdout]    |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Buffer`, `Cell`, `DefaultTerminal`, `Modifier`, `Rect`, `Text`, and `Widget`
[INFO] [stdout]   --> src/main.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     DefaultTerminal,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     Frame, Terminal,
[INFO] [stdout] 42 |     buffer::{Buffer, Cell},
[INFO] [stdout]    |              ^^^^^^  ^^^^
[INFO] [stdout] 43 |     layout::{Constraint, Direction, Layout, Rect},
[INFO] [stdout]    |                                             ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     text::{Line, Text},
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 48 |     widgets::{Block, Borders, List, ListDirection, ListItem, ListState, Paragraph, Widget},
[INFO] [stdout]    |                                                                                    ^^^^^^
[INFO] [stdout] 49 |     style::{Style, Color, Modifier},
[INFO] [stdout]    |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `filledBoard` should have an upper camel case name
[INFO] [stdout]    --> src/main.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | struct filledBoard {
[INFO] [stdout]     |        ^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `FilledBoard`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `guessBoard` should have an upper camel case name
[INFO] [stdout]    --> src/main.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | struct guessBoard {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to upper camel case: `GuessBoard`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `filledBoard` should have an upper camel case name
[INFO] [stdout]    --> src/main.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | struct filledBoard {
[INFO] [stdout]     |        ^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `FilledBoard`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `guessBoard` should have an upper camel case name
[INFO] [stdout]    --> src/main.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | struct guessBoard {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to upper camel case: `GuessBoard`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:694:37
[INFO] [stdout]     |
[INFO] [stdout] 694 | ...                   _ => {},
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/main.rs:694:37
[INFO] [stdout]     |
[INFO] [stdout] 630 | ...                   BattlePhase::OpponentBoardReady{is_ready: ready} => {
[INFO] [stdout]     |                       ------------------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 640 | ...                   BattlePhase::WaitingForBoardAck{ opponent_ready: _ready } => {}
[INFO] [stdout]     |                       --------------------------------------------------------- matches some of the same values
[INFO] [stdout] 641 | ...                   BattlePhase::GameOver{ i_won: _won } => {
[INFO] [stdout]     |                       ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 648 | ...                   BattlePhase::MyTurn | BattlePhase::WaitingForOpponent => {
[INFO] [stdout]     |                       ----------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 694 | ...                   _ => {},
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:694:37
[INFO] [stdout]     |
[INFO] [stdout] 694 | ...                   _ => {},
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/main.rs:694:37
[INFO] [stdout]     |
[INFO] [stdout] 630 | ...                   BattlePhase::OpponentBoardReady{is_ready: ready} => {
[INFO] [stdout]     |                       ------------------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 640 | ...                   BattlePhase::WaitingForBoardAck{ opponent_ready: _ready } => {}
[INFO] [stdout]     |                       --------------------------------------------------------- matches some of the same values
[INFO] [stdout] 641 | ...                   BattlePhase::GameOver{ i_won: _won } => {
[INFO] [stdout]     |                       ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 648 | ...                   BattlePhase::MyTurn | BattlePhase::WaitingForOpponent => {
[INFO] [stdout]     |                       ----------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 694 | ...                   _ => {},
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `style::Stylize`
[INFO] [stdout]   --> src/main.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     style::Stylize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncBufReadExt`
[INFO] [stdout]  --> src/main.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 |     io::{self, stdin, BufReader, AsyncBufReadExt, AsyncReadExt},
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `style::Stylize`
[INFO] [stdout]   --> src/main.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     style::Stylize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]  --> src/main.rs:2:51
[INFO] [stdout]   |
[INFO] [stdout] 2 |     io::{self, stdin, BufReader, AsyncBufReadExt, AsyncReadExt},
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncBufReadExt`
[INFO] [stdout]  --> src/main.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 |     io::{self, stdin, BufReader, AsyncBufReadExt, AsyncReadExt},
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]  --> src/main.rs:2:51
[INFO] [stdout]   |
[INFO] [stdout] 2 |     io::{self, stdin, BufReader, AsyncBufReadExt, AsyncReadExt},
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq`
[INFO] [stdout]     --> src/main.rs:1260:45
[INFO] [stdout]      |
[INFO] [stdout] 1260 | ...                   seq,
[INFO] [stdout]      |                       ^^^ help: try ignoring the field: `seq: _`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq`
[INFO] [stdout]     --> src/main.rs:1260:45
[INFO] [stdout]      |
[INFO] [stdout] 1260 | ...                   seq,
[INFO] [stdout]      |                       ^^^ help: try ignoring the field: `seq: _`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/main.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 131 | struct DisplayMessage {
[INFO] [stdout]     |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 135 |     timestamp: i64,
[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 `guessBoard` is never constructed
[INFO] [stdout]    --> src/main.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | struct guessBoard {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/main.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl guessBoard {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 184 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `opponent_nickname` is never read
[INFO] [stdout]    --> src/main.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 308 | struct BattleState {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 309 |     opponent_peer_id: PeerId,
[INFO] [stdout] 310 |     opponent_nickname: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `WaitingForBoardAck` is never constructed
[INFO] [stdout]    --> src/main.rs:337:5
[INFO] [stdout]     |
[INFO] [stdout] 336 | enum BattlePhase {
[INFO] [stdout]     |      ----------- variant in this enum
[INFO] [stdout] 337 |     WaitingForBoardAck { opponent_ready: bool },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `subscribed_topics` and `self_lookup_done` are never read
[INFO] [stdout]    --> src/main.rs:348:5
[INFO] [stdout]     |
[INFO] [stdout] 346 | struct AppState {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 347 |     current_topic: String,
[INFO] [stdout] 348 |     subscribed_topics: Vec<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     self_lookup_done: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `BattleShip` should have a snake case name
[INFO] [stdout]    --> src/main.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub mod BattleShip {
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `battle_ship`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `_BoardReady` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1045:85
[INFO] [stdout]      |
[INFO] [stdout] 1045 | ...                   BattleShip::battleship_request::Msg::BoardReady(_BoardReady) => {
[INFO] [stdout]      |                                                                       ^^^^^^^^^^^ help: convert the identifier to snake case: `_board_ready`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `shipType` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1089:57
[INFO] [stdout]      |
[INFO] [stdout] 1089 | ...                   let shipType = battle.my_board.board[shot.row as usize][shot.col as usize].clone();
[INFO] [stdout]      |                           ^^^^^^^^ help: convert the identifier to snake case: `ship_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1281:53
[INFO] [stdout]      |
[INFO] [stdout] 1281 | ...                   mesg.encode(&mut buf);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1281 |                                                     let _ = mesg.encode(&mut buf);
[INFO] [stdout]      |                                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/main.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 131 | struct DisplayMessage {
[INFO] [stdout]     |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 135 |     timestamp: i64,
[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 `guessBoard` is never constructed
[INFO] [stdout]    --> src/main.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | struct guessBoard {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/main.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl guessBoard {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 184 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `opponent_nickname` is never read
[INFO] [stdout]    --> src/main.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 308 | struct BattleState {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 309 |     opponent_peer_id: PeerId,
[INFO] [stdout] 310 |     opponent_nickname: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `WaitingForBoardAck` is never constructed
[INFO] [stdout]    --> src/main.rs:337:5
[INFO] [stdout]     |
[INFO] [stdout] 336 | enum BattlePhase {
[INFO] [stdout]     |      ----------- variant in this enum
[INFO] [stdout] 337 |     WaitingForBoardAck { opponent_ready: bool },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `subscribed_topics` and `self_lookup_done` are never read
[INFO] [stdout]    --> src/main.rs:348:5
[INFO] [stdout]     |
[INFO] [stdout] 346 | struct AppState {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 347 |     current_topic: String,
[INFO] [stdout] 348 |     subscribed_topics: Vec<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     self_lookup_done: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `BattleShip` should have a snake case name
[INFO] [stdout]    --> src/main.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub mod BattleShip {
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `battle_ship`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `_BoardReady` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1045:85
[INFO] [stdout]      |
[INFO] [stdout] 1045 | ...                   BattleShip::battleship_request::Msg::BoardReady(_BoardReady) => {
[INFO] [stdout]      |                                                                       ^^^^^^^^^^^ help: convert the identifier to snake case: `_board_ready`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `shipType` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1089:57
[INFO] [stdout]      |
[INFO] [stdout] 1089 | ...                   let shipType = battle.my_board.board[shot.row as usize][shot.col as usize].clone();
[INFO] [stdout]      |                           ^^^^^^^^ help: convert the identifier to snake case: `ship_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1281:53
[INFO] [stdout]      |
[INFO] [stdout] 1281 | ...                   mesg.encode(&mut buf);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1281 |                                                     let _ = mesg.encode(&mut buf);
[INFO] [stdout]      |                                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 30.14s
[INFO] running `Command { std: "docker" "inspect" "c9d9a581fe9c04bcbc06cc342e2b71837f61942ca8619afb57dbf6e6ef7a0dca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c9d9a581fe9c04bcbc06cc342e2b71837f61942ca8619afb57dbf6e6ef7a0dca", kill_on_drop: false }`
[INFO] [stdout] c9d9a581fe9c04bcbc06cc342e2b71837f61942ca8619afb57dbf6e6ef7a0dca
