[INFO] cloning repository https://github.com/filipe-freitas-dev/fastnet
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/filipe-freitas-dev/fastnet" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffilipe-freitas-dev%2Ffastnet", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffilipe-freitas-dev%2Ffastnet'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a91fdd13bb6fc72dc3bd729978e0f6f347a6f88c
[INFO] testing filipe-freitas-dev/fastnet against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffilipe-freitas-dev%2Ffastnet" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/filipe-freitas-dev/fastnet
[INFO] finished tweaking git repo https://github.com/filipe-freitas-dev/fastnet
[INFO] tweaked toml for git repo https://github.com/filipe-freitas-dev/fastnet written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/filipe-freitas-dev/fastnet on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/filipe-freitas-dev/fastnet 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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 44c38cb362e34e75e4909fa6be4e785b0e217f1a39e4c24a3f958af10f40d994
[INFO] running `Command { std: "docker" "start" "-a" "44c38cb362e34e75e4909fa6be4e785b0e217f1a39e4c24a3f958af10f40d994", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "44c38cb362e34e75e4909fa6be4e785b0e217f1a39e4c24a3f958af10f40d994", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "44c38cb362e34e75e4909fa6be4e785b0e217f1a39e4c24a3f958af10f40d994", kill_on_drop: false }`
[INFO] [stdout] 44c38cb362e34e75e4909fa6be4e785b0e217f1a39e4c24a3f958af10f40d994
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] de782bf73ad5a77df1ac752fd1a6ebe09427d01253d4ecba580e5dc0b272127a
[INFO] running `Command { std: "docker" "start" "-a" "de782bf73ad5a77df1ac752fd1a6ebe09427d01253d4ecba580e5dc0b272127a", kill_on_drop: false }`
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling aws-lc-rs v1.15.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustls-pki-types v1.13.1
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling cc v1.2.49
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling poly1305 v0.8.0
[INFO] [stderr]    Compiling chacha20 v0.9.1
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling twox-hash v2.1.2
[INFO] [stderr]    Compiling arrayref v0.3.9
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling chacha20poly1305 v0.10.1
[INFO] [stderr]    Compiling uuid v1.19.0
[INFO] [stderr]    Compiling lz4_flex v0.11.5
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]    Compiling aws-lc-sys v0.34.0
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.8
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling fastnet v0.2.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: constant `FEC_MAX_PACKET_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/fec.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const FEC_MAX_PACKET_SIZE: usize = 1200;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_GROUP_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/fec.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const DEFAULT_GROUP_SIZE: u8 = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FecPacketType` is never used
[INFO] [stdout]   --> src/net/fast/fec.rs:53:10
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub enum FecPacketType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_byte` is never used
[INFO] [stdout]   --> src/net/fast/fec.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl FecPacketType {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 61 |     #[inline]
[INFO] [stdout] 62 |     pub fn from_byte(b: u8) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FecHeader` is never constructed
[INFO] [stdout]   --> src/net/fast/fec.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct FecHeader {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SIZE`, `write_to`, and `read_from` are never used
[INFO] [stdout]   --> src/net/fast/fec.rs:86:15
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl FecHeader {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 86 |     pub const SIZE: usize = 5;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn write_to(&self, buf: &mut [u8]) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn read_from(buf: &[u8]) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FecEncoder` is never constructed
[INFO] [stdout]    --> src/net/fast/fec.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct FecEncoder {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/fec.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl FecEncoder {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn new(group_size: u8) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn add_packet(&mut self, data: &[u8]) -> Option<(FecHeader, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn get_parity(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn clear_parity(&mut self, len: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn data_header(&self, packet_index: u8) -> FecHeader {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn current_index(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn current_group(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FecGroup` is never constructed
[INFO] [stdout]    --> src/net/fast/fec.rs:215:8
[INFO] [stdout]     |
[INFO] [stdout] 215 | struct FecGroup {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_complete`, `can_recover`, and `missing_index` are never used
[INFO] [stdout]    --> src/net/fast/fec.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl FecGroup {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 224 |     fn new(group_size: u8) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     fn is_complete(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn can_recover(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn missing_index(&self) -> Option<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FecDecoder` is never constructed
[INFO] [stdout]    --> src/net/fast/fec.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub struct FecDecoder {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_packet`, `try_recover`, `evict_oldest`, and `clear` are never used
[INFO] [stdout]    --> src/net/fast/fec.rs:274:12
[INFO] [stdout]     |
[INFO] [stdout] 272 | impl FecDecoder {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 273 |     /// Create a new decoder.
[INFO] [stdout] 274 |     pub fn new(group_size: u8) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn add_packet(&mut self, header: &FecHeader, data: &[u8]) -> Option<(u8, Vec<u8>)> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     fn try_recover(&mut self, group_id: u16) -> Option<(u8, Vec<u8>)> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     fn evict_oldest(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELTA_MAX_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/delta.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const DELTA_MAX_SIZE: usize = 4096;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_SKIP_RUN` is never used
[INFO] [stdout]   --> src/net/fast/delta.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const MIN_SKIP_RUN: usize = 4;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeltaHeader` is never constructed
[INFO] [stdout]   --> src/net/fast/delta.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct DeltaHeader {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SIZE`, `write_to`, and `read_from` are never used
[INFO] [stdout]   --> src/net/fast/delta.rs:56:15
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl DeltaHeader {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 56 |     pub const SIZE: usize = 4;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn write_to(&self, buf: &mut [u8]) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn read_from(buf: &[u8]) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeltaRange` is never constructed
[INFO] [stdout]   --> src/net/fast/delta.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | struct DeltaRange {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SIZE`, `write_to`, and `read_from` are never used
[INFO] [stdout]   --> src/net/fast/delta.rs:84:11
[INFO] [stdout]    |
[INFO] [stdout] 83 | impl DeltaRange {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 84 |     const SIZE: usize = 4;
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     fn write_to(&self, buf: &mut [u8]) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     fn read_from(buf: &[u8]) -> Option<Self> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeltaEncoder` is never constructed
[INFO] [stdout]    --> src/net/fast/delta.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct DeltaEncoder {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `encode`, `encode_full`, `sequence`, and `reset` are never used
[INFO] [stdout]    --> src/net/fast/delta.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl DeltaEncoder {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 111 |     /// Create a new delta encoder.
[INFO] [stdout] 112 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn encode<'a>(&'a mut self, old: &[u8], new: &[u8]) -> Option<(&'a [u8], usize)> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn encode_full<'a>(&'a mut self, state: &[u8]) -> Option<(&'a [u8], usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn sequence(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeltaDecoder` is never constructed
[INFO] [stdout]    --> src/net/fast/delta.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub struct DeltaDecoder {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `apply`, and `last_seq` are never used
[INFO] [stdout]    --> src/net/fast/delta.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl DeltaDecoder {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 268 |     /// Create a new decoder.
[INFO] [stdout] 269 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn apply(&mut self, delta: &[u8], state: &mut [u8]) -> Result<(), &'static str> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn last_seq(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compression_ratio` is never used
[INFO] [stdout]    --> src/net/fast/delta.rs:342:8
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub fn compression_ratio(original_size: usize, delta_size: usize) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Priority` is never used
[INFO] [stdout]   --> src/net/fast/priority.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum Priority {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `COUNT`, `from_u8`, and `suggested_channel` are never used
[INFO] [stdout]   --> src/net/fast/priority.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Priority {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 47 |     /// Total number of priority levels.
[INFO] [stdout] 48 |     pub const COUNT: usize = 4;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn from_u8(v: u8) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn suggested_channel(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueuedPacket` is never constructed
[INFO] [stdout]   --> src/net/fast/priority.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct QueuedPacket {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriorityQueue` is never constructed
[INFO] [stdout]   --> src/net/fast/priority.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub struct PriorityQueue {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/priority.rs:99:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl PriorityQueue {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  98 |     /// Create a new priority queue.
[INFO] [stdout]  99 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn with_capacity(max_size: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn push(&mut self, priority: Priority, peer_id: u16, channel: u8, data: Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn pop(&mut self) -> Option<QueuedPacket> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn peek(&self) -> Option<&QueuedPacket> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn total_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn count_at(&self, priority: Priority) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn drop_below(&mut self, priority: Priority) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn drain_budget(&mut self, mut budget: usize) -> Vec<QueuedPacket> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WeightedQueue` is never constructed
[INFO] [stdout]    --> src/net/fast/priority.rs:243:12
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub struct WeightedQueue {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, `pop_weighted`, and `is_empty` are never used
[INFO] [stdout]    --> src/net/fast/priority.rs:251:12
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl WeightedQueue {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 250 |     /// Create a new weighted queue with default weights.
[INFO] [stdout] 251 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn push(&mut self, priority: Priority, peer_id: u16, channel: u8, data: Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn pop_weighted(&mut self) -> Option<QueuedPacket> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_BUFFER_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/jitter.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const MAX_BUFFER_SIZE: usize = 256;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BufferedPacket` is never constructed
[INFO] [stdout]   --> src/net/fast/jitter.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct BufferedPacket {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JitterStats` is never constructed
[INFO] [stdout]   --> src/net/fast/jitter.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct JitterStats {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JitterBuffer` is never constructed
[INFO] [stdout]   --> src/net/fast/jitter.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct JitterBuffer {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/jitter.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl JitterBuffer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 104 |     /// Create a new jitter buffer with the specified target delay.
[INFO] [stdout] 105 |     pub fn new(target_delay: Duration) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_bounds(target: Duration, min: Duration, max: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn push(&mut self, sequence: u32, timestamp: u32, data: Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn pop(&mut self) -> Option<BufferedPacket> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn stats(&self) -> &JitterStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn current_delay(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn depth(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn update_jitter(&mut self, arrival: Instant, timestamp: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn adapt_delay(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     fn seq_before(&self, a: u32, b: u32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     fn ts_to_duration(&self, ts: u32, base_ts: u32) -> Duration {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/metrics.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const WINDOW_SIZE: usize = 100;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlidingWindow` is never constructed
[INFO] [stdout]   --> src/net/fast/metrics.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct SlidingWindow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, `average`, `min`, and `max` are never used
[INFO] [stdout]   --> src/net/fast/metrics.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl SlidingWindow {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 45 |     const fn new() -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn push(&mut self, value: u32) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn average(&self) -> u32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn min(&self) -> u32 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     fn max(&self) -> u32 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetricsSnapshot` is never constructed
[INFO] [stdout]    --> src/net/fast/metrics.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct MetricsSnapshot {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnectionMetrics` is never constructed
[INFO] [stdout]    --> src/net/fast/metrics.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct ConnectionMetrics {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/metrics.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl ConnectionMetrics {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 174 |     /// Create new metrics collector.
[INFO] [stdout] 175 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn record_sent(&mut self, bytes: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn record_received(&mut self, bytes: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn record_rtt(&mut self, rtt: Duration) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn record_loss(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn record_retransmission(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn rtt_avg(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn jitter(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn loss_percent(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn send_rate(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn recv_rate(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn snapshot(&self) -> MetricsSnapshot {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     fn maybe_update_rate(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AggregateMetrics` is never constructed
[INFO] [stdout]    --> src/net/fast/metrics.rs:324:12
[INFO] [stdout]     |
[INFO] [stdout] 324 | pub struct AggregateMetrics {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetricsCollector` is never constructed
[INFO] [stdout]    --> src/net/fast/metrics.rs:342:12
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub struct MetricsCollector {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `aggregate` are never used
[INFO] [stdout]    --> src/net/fast/metrics.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 346 | impl MetricsCollector {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 347 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn update(&mut self, snapshots: Vec<MetricsSnapshot>) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     pub fn aggregate(&self) -> AggregateMetrics {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_TICKET_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/reconnect.rs:42:11
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub const MAX_TICKET_SIZE: usize = 256;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_TICKET_LIFETIME` is never used
[INFO] [stdout]   --> src/net/fast/reconnect.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const DEFAULT_TICKET_LIFETIME: Duration = Duration::from_secs(300); // 5 minutes
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionTicket` is never constructed
[INFO] [stdout]   --> src/net/fast/reconnect.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct SessionTicket {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_bytes` and `as_bytes` are never used
[INFO] [stdout]   --> src/net/fast/reconnect.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl SessionTicket {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 65 |     /// Create from raw bytes.
[INFO] [stdout] 66 |     pub fn from_bytes(bytes: &[u8]) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn as_bytes(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RestoredSession` is never constructed
[INFO] [stdout]   --> src/net/fast/reconnect.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct RestoredSession {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionStore` is never constructed
[INFO] [stdout]   --> src/net/fast/reconnect.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct SessionStore {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/reconnect.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl SessionStore {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn new(server_key: [u8; 32]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_lifetime(mut self, lifetime: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn create_ticket(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn validate_ticket(&mut self, ticket: &SessionTicket) -> Option<RestoredSession> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn derive_encryption_key(&self, ticket_id: &[u8; 16]) -> [u8; 32] {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn compute_hmac(&self, data: &[u8]) -> [u8; 32] {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn maybe_cleanup(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn used_ticket_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `constant_time_eq` is never used
[INFO] [stdout]    --> src/net/fast/reconnect.rs:285:4
[INFO] [stdout]     |
[INFO] [stdout] 285 | fn constant_time_eq(a: &[u8], b: &[u8]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientTicketStore` is never constructed
[INFO] [stdout]    --> src/net/fast/reconnect.rs:297:12
[INFO] [stdout]     |
[INFO] [stdout] 297 | pub struct ClientTicketStore {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `store`, `get`, `remove`, and `clear` are never used
[INFO] [stdout]    --> src/net/fast/reconnect.rs:305:12
[INFO] [stdout]     |
[INFO] [stdout] 304 | impl ClientTicketStore {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 305 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn store(&mut self, server_addr: &str, ticket: SessionTicket) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn get(&self, server_addr: &str) -> Option<&SessionTicket> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn remove(&mut self, server_addr: &str) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `EntityId` is never used
[INFO] [stdout]   --> src/net/fast/interest.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub type EntityId = u32;
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Position` is never constructed
[INFO] [stdout]   --> src/net/fast/interest.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct Position {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `distance_squared` are never used
[INFO] [stdout]   --> src/net/fast/interest.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl Position {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 51 |     #[inline]
[INFO] [stdout] 52 |     pub fn new(x: f32, y: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn distance_squared(&self, other: &Position) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CellCoord` is never constructed
[INFO] [stdout]   --> src/net/fast/interest.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct CellCoord {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InterestGrid` is never constructed
[INFO] [stdout]   --> src/net/fast/interest.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct InterestGrid {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/interest.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl InterestGrid {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn new(cell_size: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn insert(&mut self, id: EntityId, x: f32, y: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn remove(&mut self, id: EntityId) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn query(&self, x: f32, y: f32, radius: i32) -> Vec<EntityId> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn query_radius(&self, x: f32, y: f32, radius: f32) -> Vec<EntityId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn diff_entered(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn diff_left(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn get_position(&self, id: EntityId) -> Option<Position> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn pos_to_cell(&self, x: f32, y: f32) -> CellCoord {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlayerInterest` is never constructed
[INFO] [stdout]    --> src/net/fast/interest.rs:238:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub struct PlayerInterest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, `visible`, and `clear` are never used
[INFO] [stdout]    --> src/net/fast/interest.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | impl PlayerInterest {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 248 |     pub fn new(player_id: EntityId, radius: i32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn update(&mut self, grid: &InterestGrid) -> (Vec<EntityId>, Vec<EntityId>) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn visible(&self) -> &HashSet<EntityId> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UpdatePriority` is never used
[INFO] [stdout]    --> src/net/fast/interest.rs:294:10
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub enum UpdatePriority {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriorityCalculator` is never constructed
[INFO] [stdout]    --> src/net/fast/interest.rs:306:12
[INFO] [stdout]     |
[INFO] [stdout] 306 | pub struct PriorityCalculator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `calculate` are never used
[INFO] [stdout]    --> src/net/fast/interest.rs:314:12
[INFO] [stdout]     |
[INFO] [stdout] 313 | impl PriorityCalculator {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 314 |     pub fn new(high_distance: f32, normal_distance: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn calculate(&self, distance: f32, is_player: bool) -> UpdatePriority {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnectionId` is never constructed
[INFO] [stdout]   --> src/net/fast/migration.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ConnectionId([u8; 16]);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `generate`, `from_bytes`, `as_bytes`, `write_to`, and `read_from` are never used
[INFO] [stdout]   --> src/net/fast/migration.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl ConnectionId {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 46 |     /// Generate a new random connection ID.
[INFO] [stdout] 47 |     pub fn generate() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn from_bytes(bytes: [u8; 16]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn as_bytes(&self) -> &[u8; 16] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn write_to(&self, buf: &mut [u8]) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn read_from(buf: &[u8]) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MigrationProof` is never constructed
[INFO] [stdout]   --> src/net/fast/migration.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct MigrationProof {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SIZE`, `create`, `verify`, `compute_hmac`, `to_bytes`, and `from_bytes` are never used
[INFO] [stdout]    --> src/net/fast/migration.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl MigrationProof {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 100 |     pub const SIZE: usize = 40; // 32 + 8
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn create(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn verify(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn compute_hmac(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn to_bytes(&self) -> [u8; Self::SIZE] {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn from_bytes(buf: &[u8]) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnectionState` is never constructed
[INFO] [stdout]    --> src/net/fast/migration.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct ConnectionState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MigrationManager` is never constructed
[INFO] [stdout]    --> src/net/fast/migration.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct MigrationManager {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/migration.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl MigrationManager {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 208 |     /// Create a new migration manager.
[INFO] [stdout] 209 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn with_rate_limit(mut self, max_per_minute: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn with_proof_age(mut self, max_secs: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn register(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn remove(&mut self, cid: &ConnectionId) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn get_cid(&self, addr: &SocketAddr) -> Option<ConnectionId> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn get_peer_id(&self, cid: &ConnectionId) -> Option<u16> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn get_addr(&self, cid: &ConnectionId) -> Option<SocketAddr> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn validate_migration(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn touch(&mut self, cid: &ConnectionId) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub fn connection_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientMigration` is never constructed
[INFO] [stdout]    --> src/net/fast/migration.rs:364:12
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub struct ClientMigration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `check_migration`, `connection_id`, and `server_addr` are never used
[INFO] [stdout]    --> src/net/fast/migration.rs:377:12
[INFO] [stdout]     |
[INFO] [stdout] 375 | impl ClientMigration {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 376 |     /// Create a new client migration state.
[INFO] [stdout] 377 |     pub fn new(cid: ConnectionId, session_key: [u8; 32], server_addr: SocketAddr) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn check_migration(&mut self, current_addr: SocketAddr) -> Option<MigrationProof> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn connection_id(&self) -> ConnectionId {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn server_addr(&self) -> SocketAddr {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `addr_to_bytes` is never used
[INFO] [stdout]    --> src/net/fast/migration.rs:423:4
[INFO] [stdout]     |
[INFO] [stdout] 423 | fn addr_to_bytes(addr: SocketAddr) -> [u8; 18] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `constant_time_eq` is never used
[INFO] [stdout]    --> src/net/fast/migration.rs:443:4
[INFO] [stdout]     |
[INFO] [stdout] 443 | fn constant_time_eq(a: &[u8], b: &[u8]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PACKET_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const MAX_PACKET_SIZE: usize = 1200;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROBE_BW_GAIN_CYCLE` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const PROBE_BW_GAIN_CYCLE: [f64; 8] = [1.25, 0.75, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STARTUP_GAIN` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const STARTUP_GAIN: f64 = 2.885; // 2/ln(2)
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRAIN_GAIN` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const DRAIN_GAIN: f64 = 1.0 / STARTUP_GAIN;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROBE_RTT_DURATION` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const PROBE_RTT_DURATION: Duration = Duration::from_millis(200);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RTPROP_FILTER_LEN` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const RTPROP_FILTER_LEN: Duration = Duration::from_secs(10);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BTLBW_FILTER_LEN` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const BTLBW_FILTER_LEN: usize = 10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_CWND` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const MIN_CWND: u32 = 4;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INITIAL_CWND` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const INITIAL_CWND: u32 = 10;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BbrState` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub enum BbrState {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MaxFilter` is never constructed
[INFO] [stdout]   --> src/net/fast/bbr.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct MaxFilter {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, `get`, and `reset` are never used
[INFO] [stdout]    --> src/net/fast/bbr.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl MaxFilter {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  68 |     fn new(window_len: usize) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     fn update(&mut self, value: u64, now: Instant) -> u64 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     fn get(&self) -> u64 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn reset(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MinFilter` is never constructed
[INFO] [stdout]    --> src/net/fast/bbr.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct MinFilter {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, `get`, and `expired` are never used
[INFO] [stdout]    --> src/net/fast/bbr.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl MinFilter {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 115 |     fn new(window: Duration) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn update(&mut self, rtt: Duration, now: Instant) -> Duration {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn get(&self) -> Duration {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn expired(&self, now: Instant) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BbrCongestionControl` is never constructed
[INFO] [stdout]    --> src/net/fast/bbr.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct BbrCongestionControl {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/bbr.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 196 | impl BbrCongestionControl {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 197 |     /// Create new BBR congestion control.
[INFO] [stdout] 198 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn on_send(&mut self, _bytes: usize) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn on_ack(&mut self, bytes_acked: usize, rtt: Duration) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub fn on_loss(&mut self, _bytes_lost: usize) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn on_timeout(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub fn available_window(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn cwnd(&self) -> u32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn pacing_rate(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     pub fn bandwidth(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn min_rtt(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     pub fn state(&self) -> BbrState {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn pacing_interval(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     fn calculate_delivery_rate(&self, now: Instant) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     fn update_round(&mut self, _now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     fn check_full_pipe(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     fn update_startup(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     fn enter_drain(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 410 |     fn update_drain(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     fn enter_probe_bw(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 426 |     fn update_probe_bw(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 441 |     fn enter_probe_rtt(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     fn update_probe_rtt(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 475 |     fn restore_after_probe_rtt(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     fn update_pacing_rate(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     fn update_cwnd(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |     fn bdp(&self) -> u64 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 19s
[INFO] running `Command { std: "docker" "inspect" "de782bf73ad5a77df1ac752fd1a6ebe09427d01253d4ecba580e5dc0b272127a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de782bf73ad5a77df1ac752fd1a6ebe09427d01253d4ecba580e5dc0b272127a", kill_on_drop: false }`
[INFO] [stdout] de782bf73ad5a77df1ac752fd1a6ebe09427d01253d4ecba580e5dc0b272127a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0105b8b34c49ec8a89b22aae92dae7ed51b6c73c4ac275e8086c684775503aaf
[INFO] running `Command { std: "docker" "start" "-a" "0105b8b34c49ec8a89b22aae92dae7ed51b6c73c4ac275e8086c684775503aaf", kill_on_drop: false }`
[INFO] [stdout] warning: constant `FEC_MAX_PACKET_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/fec.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const FEC_MAX_PACKET_SIZE: usize = 1200;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_GROUP_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/fec.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const DEFAULT_GROUP_SIZE: u8 = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FecPacketType` is never used
[INFO] [stdout]   --> src/net/fast/fec.rs:53:10
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub enum FecPacketType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_byte` is never used
[INFO] [stdout]   --> src/net/fast/fec.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl FecPacketType {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 61 |     #[inline]
[INFO] [stdout] 62 |     pub fn from_byte(b: u8) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FecHeader` is never constructed
[INFO] [stdout]   --> src/net/fast/fec.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct FecHeader {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SIZE`, `write_to`, and `read_from` are never used
[INFO] [stdout]   --> src/net/fast/fec.rs:86:15
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl FecHeader {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 86 |     pub const SIZE: usize = 5;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn write_to(&self, buf: &mut [u8]) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn read_from(buf: &[u8]) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FecEncoder` is never constructed
[INFO] [stdout]    --> src/net/fast/fec.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct FecEncoder {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/fec.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl FecEncoder {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn new(group_size: u8) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn add_packet(&mut self, data: &[u8]) -> Option<(FecHeader, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn get_parity(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn clear_parity(&mut self, len: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn data_header(&self, packet_index: u8) -> FecHeader {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn current_index(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn current_group(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FecGroup` is never constructed
[INFO] [stdout]    --> src/net/fast/fec.rs:215:8
[INFO] [stdout]     |
[INFO] [stdout] 215 | struct FecGroup {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_complete`, `can_recover`, and `missing_index` are never used
[INFO] [stdout]    --> src/net/fast/fec.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl FecGroup {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 224 |     fn new(group_size: u8) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     fn is_complete(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn can_recover(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn missing_index(&self) -> Option<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FecDecoder` is never constructed
[INFO] [stdout]    --> src/net/fast/fec.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub struct FecDecoder {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_packet`, `try_recover`, `evict_oldest`, and `clear` are never used
[INFO] [stdout]    --> src/net/fast/fec.rs:274:12
[INFO] [stdout]     |
[INFO] [stdout] 272 | impl FecDecoder {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 273 |     /// Create a new decoder.
[INFO] [stdout] 274 |     pub fn new(group_size: u8) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn add_packet(&mut self, header: &FecHeader, data: &[u8]) -> Option<(u8, Vec<u8>)> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     fn try_recover(&mut self, group_id: u16) -> Option<(u8, Vec<u8>)> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     fn evict_oldest(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELTA_MAX_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/delta.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const DELTA_MAX_SIZE: usize = 4096;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_SKIP_RUN` is never used
[INFO] [stdout]   --> src/net/fast/delta.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const MIN_SKIP_RUN: usize = 4;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeltaHeader` is never constructed
[INFO] [stdout]   --> src/net/fast/delta.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct DeltaHeader {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SIZE`, `write_to`, and `read_from` are never used
[INFO] [stdout]   --> src/net/fast/delta.rs:56:15
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl DeltaHeader {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 56 |     pub const SIZE: usize = 4;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn write_to(&self, buf: &mut [u8]) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn read_from(buf: &[u8]) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeltaRange` is never constructed
[INFO] [stdout]   --> src/net/fast/delta.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | struct DeltaRange {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SIZE`, `write_to`, and `read_from` are never used
[INFO] [stdout]   --> src/net/fast/delta.rs:84:11
[INFO] [stdout]    |
[INFO] [stdout] 83 | impl DeltaRange {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 84 |     const SIZE: usize = 4;
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     fn write_to(&self, buf: &mut [u8]) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     fn read_from(buf: &[u8]) -> Option<Self> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeltaEncoder` is never constructed
[INFO] [stdout]    --> src/net/fast/delta.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct DeltaEncoder {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `encode`, `encode_full`, `sequence`, and `reset` are never used
[INFO] [stdout]    --> src/net/fast/delta.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl DeltaEncoder {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 111 |     /// Create a new delta encoder.
[INFO] [stdout] 112 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn encode<'a>(&'a mut self, old: &[u8], new: &[u8]) -> Option<(&'a [u8], usize)> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn encode_full<'a>(&'a mut self, state: &[u8]) -> Option<(&'a [u8], usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn sequence(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeltaDecoder` is never constructed
[INFO] [stdout]    --> src/net/fast/delta.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub struct DeltaDecoder {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `apply`, and `last_seq` are never used
[INFO] [stdout]    --> src/net/fast/delta.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl DeltaDecoder {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 268 |     /// Create a new decoder.
[INFO] [stdout] 269 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn apply(&mut self, delta: &[u8], state: &mut [u8]) -> Result<(), &'static str> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn last_seq(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compression_ratio` is never used
[INFO] [stdout]    --> src/net/fast/delta.rs:342:8
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub fn compression_ratio(original_size: usize, delta_size: usize) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Priority` is never used
[INFO] [stdout]   --> src/net/fast/priority.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum Priority {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `COUNT`, `from_u8`, and `suggested_channel` are never used
[INFO] [stdout]   --> src/net/fast/priority.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Priority {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 47 |     /// Total number of priority levels.
[INFO] [stdout] 48 |     pub const COUNT: usize = 4;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn from_u8(v: u8) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn suggested_channel(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueuedPacket` is never constructed
[INFO] [stdout]   --> src/net/fast/priority.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct QueuedPacket {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriorityQueue` is never constructed
[INFO] [stdout]   --> src/net/fast/priority.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub struct PriorityQueue {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/priority.rs:99:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl PriorityQueue {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  98 |     /// Create a new priority queue.
[INFO] [stdout]  99 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn with_capacity(max_size: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn push(&mut self, priority: Priority, peer_id: u16, channel: u8, data: Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn pop(&mut self) -> Option<QueuedPacket> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn peek(&self) -> Option<&QueuedPacket> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn total_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn count_at(&self, priority: Priority) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn drop_below(&mut self, priority: Priority) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn drain_budget(&mut self, mut budget: usize) -> Vec<QueuedPacket> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WeightedQueue` is never constructed
[INFO] [stdout]    --> src/net/fast/priority.rs:243:12
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub struct WeightedQueue {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, `pop_weighted`, and `is_empty` are never used
[INFO] [stdout]    --> src/net/fast/priority.rs:251:12
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl WeightedQueue {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 250 |     /// Create a new weighted queue with default weights.
[INFO] [stdout] 251 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn push(&mut self, priority: Priority, peer_id: u16, channel: u8, data: Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn pop_weighted(&mut self) -> Option<QueuedPacket> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_BUFFER_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/jitter.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const MAX_BUFFER_SIZE: usize = 256;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BufferedPacket` is never constructed
[INFO] [stdout]   --> src/net/fast/jitter.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct BufferedPacket {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JitterStats` is never constructed
[INFO] [stdout]   --> src/net/fast/jitter.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct JitterStats {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JitterBuffer` is never constructed
[INFO] [stdout]   --> src/net/fast/jitter.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct JitterBuffer {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/jitter.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl JitterBuffer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 104 |     /// Create a new jitter buffer with the specified target delay.
[INFO] [stdout] 105 |     pub fn new(target_delay: Duration) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_bounds(target: Duration, min: Duration, max: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn push(&mut self, sequence: u32, timestamp: u32, data: Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn pop(&mut self) -> Option<BufferedPacket> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn stats(&self) -> &JitterStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn current_delay(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn depth(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn update_jitter(&mut self, arrival: Instant, timestamp: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn adapt_delay(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     fn seq_before(&self, a: u32, b: u32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     fn ts_to_duration(&self, ts: u32, base_ts: u32) -> Duration {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/metrics.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const WINDOW_SIZE: usize = 100;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlidingWindow` is never constructed
[INFO] [stdout]   --> src/net/fast/metrics.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct SlidingWindow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, `average`, `min`, and `max` are never used
[INFO] [stdout]   --> src/net/fast/metrics.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl SlidingWindow {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 45 |     const fn new() -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn push(&mut self, value: u32) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn average(&self) -> u32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn min(&self) -> u32 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     fn max(&self) -> u32 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetricsSnapshot` is never constructed
[INFO] [stdout]    --> src/net/fast/metrics.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct MetricsSnapshot {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnectionMetrics` is never constructed
[INFO] [stdout]    --> src/net/fast/metrics.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct ConnectionMetrics {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/metrics.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl ConnectionMetrics {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 174 |     /// Create new metrics collector.
[INFO] [stdout] 175 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn record_sent(&mut self, bytes: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn record_received(&mut self, bytes: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn record_rtt(&mut self, rtt: Duration) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn record_loss(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn record_retransmission(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn rtt_avg(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn jitter(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn loss_percent(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn send_rate(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn recv_rate(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn snapshot(&self) -> MetricsSnapshot {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     fn maybe_update_rate(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AggregateMetrics` is never constructed
[INFO] [stdout]    --> src/net/fast/metrics.rs:324:12
[INFO] [stdout]     |
[INFO] [stdout] 324 | pub struct AggregateMetrics {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetricsCollector` is never constructed
[INFO] [stdout]    --> src/net/fast/metrics.rs:342:12
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub struct MetricsCollector {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `aggregate` are never used
[INFO] [stdout]    --> src/net/fast/metrics.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 346 | impl MetricsCollector {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 347 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn update(&mut self, snapshots: Vec<MetricsSnapshot>) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     pub fn aggregate(&self) -> AggregateMetrics {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_TICKET_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/reconnect.rs:42:11
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub const MAX_TICKET_SIZE: usize = 256;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_TICKET_LIFETIME` is never used
[INFO] [stdout]   --> src/net/fast/reconnect.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const DEFAULT_TICKET_LIFETIME: Duration = Duration::from_secs(300); // 5 minutes
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionTicket` is never constructed
[INFO] [stdout]   --> src/net/fast/reconnect.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct SessionTicket {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_bytes` and `as_bytes` are never used
[INFO] [stdout]   --> src/net/fast/reconnect.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl SessionTicket {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 65 |     /// Create from raw bytes.
[INFO] [stdout] 66 |     pub fn from_bytes(bytes: &[u8]) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn as_bytes(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RestoredSession` is never constructed
[INFO] [stdout]   --> src/net/fast/reconnect.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct RestoredSession {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionStore` is never constructed
[INFO] [stdout]   --> src/net/fast/reconnect.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct SessionStore {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/reconnect.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl SessionStore {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn new(server_key: [u8; 32]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_lifetime(mut self, lifetime: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn create_ticket(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn validate_ticket(&mut self, ticket: &SessionTicket) -> Option<RestoredSession> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn derive_encryption_key(&self, ticket_id: &[u8; 16]) -> [u8; 32] {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn compute_hmac(&self, data: &[u8]) -> [u8; 32] {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn maybe_cleanup(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn used_ticket_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `constant_time_eq` is never used
[INFO] [stdout]    --> src/net/fast/reconnect.rs:285:4
[INFO] [stdout]     |
[INFO] [stdout] 285 | fn constant_time_eq(a: &[u8], b: &[u8]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientTicketStore` is never constructed
[INFO] [stdout]    --> src/net/fast/reconnect.rs:297:12
[INFO] [stdout]     |
[INFO] [stdout] 297 | pub struct ClientTicketStore {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `store`, `get`, `remove`, and `clear` are never used
[INFO] [stdout]    --> src/net/fast/reconnect.rs:305:12
[INFO] [stdout]     |
[INFO] [stdout] 304 | impl ClientTicketStore {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 305 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn store(&mut self, server_addr: &str, ticket: SessionTicket) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn get(&self, server_addr: &str) -> Option<&SessionTicket> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn remove(&mut self, server_addr: &str) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `EntityId` is never used
[INFO] [stdout]   --> src/net/fast/interest.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub type EntityId = u32;
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Position` is never constructed
[INFO] [stdout]   --> src/net/fast/interest.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct Position {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `distance_squared` are never used
[INFO] [stdout]   --> src/net/fast/interest.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl Position {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 51 |     #[inline]
[INFO] [stdout] 52 |     pub fn new(x: f32, y: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn distance_squared(&self, other: &Position) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CellCoord` is never constructed
[INFO] [stdout]   --> src/net/fast/interest.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct CellCoord {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InterestGrid` is never constructed
[INFO] [stdout]   --> src/net/fast/interest.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct InterestGrid {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/interest.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl InterestGrid {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn new(cell_size: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn insert(&mut self, id: EntityId, x: f32, y: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn remove(&mut self, id: EntityId) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn query(&self, x: f32, y: f32, radius: i32) -> Vec<EntityId> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn query_radius(&self, x: f32, y: f32, radius: f32) -> Vec<EntityId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn diff_entered(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn diff_left(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn get_position(&self, id: EntityId) -> Option<Position> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn pos_to_cell(&self, x: f32, y: f32) -> CellCoord {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlayerInterest` is never constructed
[INFO] [stdout]    --> src/net/fast/interest.rs:238:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub struct PlayerInterest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, `visible`, and `clear` are never used
[INFO] [stdout]    --> src/net/fast/interest.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | impl PlayerInterest {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 248 |     pub fn new(player_id: EntityId, radius: i32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn update(&mut self, grid: &InterestGrid) -> (Vec<EntityId>, Vec<EntityId>) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn visible(&self) -> &HashSet<EntityId> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UpdatePriority` is never used
[INFO] [stdout]    --> src/net/fast/interest.rs:294:10
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub enum UpdatePriority {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriorityCalculator` is never constructed
[INFO] [stdout]    --> src/net/fast/interest.rs:306:12
[INFO] [stdout]     |
[INFO] [stdout] 306 | pub struct PriorityCalculator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `calculate` are never used
[INFO] [stdout]    --> src/net/fast/interest.rs:314:12
[INFO] [stdout]     |
[INFO] [stdout] 313 | impl PriorityCalculator {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 314 |     pub fn new(high_distance: f32, normal_distance: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn calculate(&self, distance: f32, is_player: bool) -> UpdatePriority {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnectionId` is never constructed
[INFO] [stdout]   --> src/net/fast/migration.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ConnectionId([u8; 16]);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `generate`, `from_bytes`, `as_bytes`, `write_to`, and `read_from` are never used
[INFO] [stdout]   --> src/net/fast/migration.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl ConnectionId {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 46 |     /// Generate a new random connection ID.
[INFO] [stdout] 47 |     pub fn generate() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn from_bytes(bytes: [u8; 16]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn as_bytes(&self) -> &[u8; 16] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn write_to(&self, buf: &mut [u8]) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn read_from(buf: &[u8]) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling fastnet v0.2.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `MigrationProof` is never constructed
[INFO] [stdout]   --> src/net/fast/migration.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct MigrationProof {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SIZE`, `create`, `verify`, `compute_hmac`, `to_bytes`, and `from_bytes` are never used
[INFO] [stdout]    --> src/net/fast/migration.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl MigrationProof {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 100 |     pub const SIZE: usize = 40; // 32 + 8
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn create(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn verify(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn compute_hmac(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn to_bytes(&self) -> [u8; Self::SIZE] {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn from_bytes(buf: &[u8]) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnectionState` is never constructed
[INFO] [stdout]    --> src/net/fast/migration.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct ConnectionState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MigrationManager` is never constructed
[INFO] [stdout]    --> src/net/fast/migration.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct MigrationManager {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/migration.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl MigrationManager {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 208 |     /// Create a new migration manager.
[INFO] [stdout] 209 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn with_rate_limit(mut self, max_per_minute: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn with_proof_age(mut self, max_secs: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn register(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn remove(&mut self, cid: &ConnectionId) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn get_cid(&self, addr: &SocketAddr) -> Option<ConnectionId> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn get_peer_id(&self, cid: &ConnectionId) -> Option<u16> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn get_addr(&self, cid: &ConnectionId) -> Option<SocketAddr> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn validate_migration(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn touch(&mut self, cid: &ConnectionId) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub fn connection_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientMigration` is never constructed
[INFO] [stdout]    --> src/net/fast/migration.rs:364:12
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub struct ClientMigration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `check_migration`, `connection_id`, and `server_addr` are never used
[INFO] [stdout]    --> src/net/fast/migration.rs:377:12
[INFO] [stdout]     |
[INFO] [stdout] 375 | impl ClientMigration {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 376 |     /// Create a new client migration state.
[INFO] [stdout] 377 |     pub fn new(cid: ConnectionId, session_key: [u8; 32], server_addr: SocketAddr) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn check_migration(&mut self, current_addr: SocketAddr) -> Option<MigrationProof> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn connection_id(&self) -> ConnectionId {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn server_addr(&self) -> SocketAddr {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `addr_to_bytes` is never used
[INFO] [stdout]    --> src/net/fast/migration.rs:423:4
[INFO] [stdout]     |
[INFO] [stdout] 423 | fn addr_to_bytes(addr: SocketAddr) -> [u8; 18] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `constant_time_eq` is never used
[INFO] [stdout]    --> src/net/fast/migration.rs:443:4
[INFO] [stdout]     |
[INFO] [stdout] 443 | fn constant_time_eq(a: &[u8], b: &[u8]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PACKET_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const MAX_PACKET_SIZE: usize = 1200;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROBE_BW_GAIN_CYCLE` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const PROBE_BW_GAIN_CYCLE: [f64; 8] = [1.25, 0.75, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STARTUP_GAIN` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const STARTUP_GAIN: f64 = 2.885; // 2/ln(2)
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRAIN_GAIN` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const DRAIN_GAIN: f64 = 1.0 / STARTUP_GAIN;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROBE_RTT_DURATION` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const PROBE_RTT_DURATION: Duration = Duration::from_millis(200);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RTPROP_FILTER_LEN` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const RTPROP_FILTER_LEN: Duration = Duration::from_secs(10);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BTLBW_FILTER_LEN` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const BTLBW_FILTER_LEN: usize = 10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_CWND` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const MIN_CWND: u32 = 4;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INITIAL_CWND` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const INITIAL_CWND: u32 = 10;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BbrState` is never used
[INFO] [stdout]   --> src/net/fast/bbr.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub enum BbrState {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MaxFilter` is never constructed
[INFO] [stdout]   --> src/net/fast/bbr.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct MaxFilter {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, `get`, and `reset` are never used
[INFO] [stdout]    --> src/net/fast/bbr.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl MaxFilter {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  68 |     fn new(window_len: usize) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     fn update(&mut self, value: u64, now: Instant) -> u64 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     fn get(&self) -> u64 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn reset(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MinFilter` is never constructed
[INFO] [stdout]    --> src/net/fast/bbr.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct MinFilter {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, `get`, and `expired` are never used
[INFO] [stdout]    --> src/net/fast/bbr.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl MinFilter {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 115 |     fn new(window: Duration) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn update(&mut self, rtt: Duration, now: Instant) -> Duration {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn get(&self) -> Duration {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn expired(&self, now: Instant) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BbrCongestionControl` is never constructed
[INFO] [stdout]    --> src/net/fast/bbr.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct BbrCongestionControl {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/net/fast/bbr.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 196 | impl BbrCongestionControl {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 197 |     /// Create new BBR congestion control.
[INFO] [stdout] 198 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn on_send(&mut self, _bytes: usize) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn on_ack(&mut self, bytes_acked: usize, rtt: Duration) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub fn on_loss(&mut self, _bytes_lost: usize) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn on_timeout(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub fn available_window(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn cwnd(&self) -> u32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn pacing_rate(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     pub fn bandwidth(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn min_rtt(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     pub fn state(&self) -> BbrState {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn pacing_interval(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     fn calculate_delivery_rate(&self, now: Instant) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     fn update_round(&mut self, _now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     fn check_full_pipe(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     fn update_startup(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     fn enter_drain(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 410 |     fn update_drain(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     fn enter_probe_bw(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 426 |     fn update_probe_bw(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 441 |     fn enter_probe_rtt(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     fn update_probe_rtt(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 475 |     fn restore_after_probe_rtt(&mut self, now: Instant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     fn update_pacing_rate(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     fn update_cwnd(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |     fn bdp(&self) -> u64 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_GROUP_SIZE` is never used
[INFO] [stdout]   --> src/net/fast/fec.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const DEFAULT_GROUP_SIZE: u8 = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `current_index` and `current_group` are never used
[INFO] [stdout]    --> src/net/fast/fec.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl FecEncoder {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn current_index(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn current_group(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `group_size` is never read
[INFO] [stdout]    --> src/net/fast/fec.rs:265:5
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub struct FecDecoder {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 265 |     group_size: u8,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/net/fast/fec.rs:366:12
[INFO] [stdout]     |
[INFO] [stdout] 272 | impl FecDecoder {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sequence` and `reset` are never used
[INFO] [stdout]    --> src/net/fast/delta.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl DeltaEncoder {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn sequence(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `last_seq` is never used
[INFO] [stdout]    --> src/net/fast/delta.rs:329:12
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl DeltaDecoder {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn last_seq(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_u8` and `suggested_channel` are never used
[INFO] [stdout]   --> src/net/fast/priority.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Priority {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn from_u8(v: u8) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn suggested_channel(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `peer_id` and `channel` are never read
[INFO] [stdout]   --> src/net/fast/priority.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct QueuedPacket {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 81 |     pub peer_id: u16,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 82 |     pub channel: u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueuedPacket` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peek`, `is_empty`, `total_size`, `count_at`, and `clear` are never used
[INFO] [stdout]    --> src/net/fast/priority.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl PriorityQueue {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn peek(&self) -> Option<&QueuedPacket> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn total_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn count_at(&self, priority: Priority) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> src/net/fast/priority.rs:298:12
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl WeightedQueue {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]   --> src/net/fast/jitter.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct BufferedPacket {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub data: Vec<u8>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BufferedPacket` 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 `with_bounds`, `current_delay`, and `reset` are never used
[INFO] [stdout]    --> src/net/fast/jitter.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl JitterBuffer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_bounds(target: Duration, min: Duration, max: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn current_delay(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rtt_min_us`, `rtt_max_us`, `jitter_us`, `packets_received`, `retransmissions`, and `uptime` are never read
[INFO] [stdout]    --> src/net/fast/metrics.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct MetricsSnapshot {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub rtt_min_us: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 110 |     /// Maximum RTT in microseconds.
[INFO] [stdout] 111 |     pub rtt_max_us: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 112 |     /// Jitter (RTT variance) in microseconds.
[INFO] [stdout] 113 |     pub jitter_us: u32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub packets_received: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub retransmissions: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub uptime: Duration,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricsSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `record_retransmission`, `rtt_avg`, `send_rate`, `recv_rate`, and `reset` are never used
[INFO] [stdout]    --> src/net/fast/metrics.rs:237:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl ConnectionMetrics {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn record_retransmission(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn rtt_avg(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn send_rate(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn recv_rate(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `used_ticket_count` is never used
[INFO] [stdout]    --> src/net/fast/reconnect.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl SessionStore {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn used_ticket_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/net/fast/reconnect.rs:338:12
[INFO] [stdout]     |
[INFO] [stdout] 304 | impl ClientTicketStore {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cell_size` is never read
[INFO] [stdout]   --> src/net/fast/interest.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct InterestGrid {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 73 |     /// Cell size in world units.
[INFO] [stdout] 74 |     cell_size: f32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len`, `is_empty`, and `clear` are never used
[INFO] [stdout]    --> src/net/fast/interest.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl InterestGrid {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `visible` and `clear` are never used
[INFO] [stdout]    --> src/net/fast/interest.rs:281:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | impl PlayerInterest {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn visible(&self) -> &HashSet<EntityId> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bytes` is never used
[INFO] [stdout]   --> src/net/fast/migration.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl ConnectionId {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn from_bytes(bytes: [u8; 16]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `connection_timeout` is never read
[INFO] [stdout]    --> src/net/fast/migration.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct MigrationManager {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 204 |     connection_timeout: Duration,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_proof_age`, `remove`, `get_cid`, `touch`, `cleanup`, and `connection_count` are never used
[INFO] [stdout]    --> src/net/fast/migration.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl MigrationManager {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn with_proof_age(mut self, max_secs: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn remove(&mut self, cid: &ConnectionId) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn get_cid(&self, addr: &SocketAddr) -> Option<ConnectionId> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn touch(&mut self, cid: &ConnectionId) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub fn connection_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `server_addr` is never read
[INFO] [stdout]    --> src/net/fast/migration.rs:370:5
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub struct ClientMigration {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 370 |     server_addr: SocketAddr,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `connection_id` and `server_addr` are never used
[INFO] [stdout]    --> src/net/fast/migration.rs:411:12
[INFO] [stdout]     |
[INFO] [stdout] 375 | impl ClientMigration {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn connection_id(&self) -> ConnectionId {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn server_addr(&self) -> SocketAddr {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/net/fast/bbr.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl MaxFilter {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn reset(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `delivered_time` is never read
[INFO] [stdout]    --> src/net/fast/bbr.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct BbrCongestionControl {
[INFO] [stdout]     |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 172 |     delivered_time: Instant,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BbrCongestionControl` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `on_timeout`, `cwnd`, `pacing_rate`, `bandwidth`, and `state` are never used
[INFO] [stdout]    --> src/net/fast/bbr.rs:297:12
[INFO] [stdout]     |
[INFO] [stdout] 196 | impl BbrCongestionControl {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn on_timeout(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn cwnd(&self) -> u32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn pacing_rate(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     pub fn bandwidth(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     pub fn state(&self) -> BbrState {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 7.12s
[INFO] running `Command { std: "docker" "inspect" "0105b8b34c49ec8a89b22aae92dae7ed51b6c73c4ac275e8086c684775503aaf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0105b8b34c49ec8a89b22aae92dae7ed51b6c73c4ac275e8086c684775503aaf", kill_on_drop: false }`
[INFO] [stdout] 0105b8b34c49ec8a89b22aae92dae7ed51b6c73c4ac275e8086c684775503aaf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d7849e631c108e9798a96a55e49f21b17fa64bd71ad91331841bc7b67997cace
[INFO] running `Command { std: "docker" "start" "-a" "d7849e631c108e9798a96a55e49f21b17fa64bd71ad91331841bc7b67997cace", kill_on_drop: false }`
[INFO] [stderr] warning: constant `FEC_MAX_PACKET_SIZE` is never used
[INFO] [stderr]   --> src/net/fast/fec.rs:45:11
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub const FEC_MAX_PACKET_SIZE: usize = 1200;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_GROUP_SIZE` is never used
[INFO] [stderr]   --> src/net/fast/fec.rs:48:11
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub const DEFAULT_GROUP_SIZE: u8 = 4;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `FecPacketType` is never used
[INFO] [stderr]   --> src/net/fast/fec.rs:53:10
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub enum FecPacketType {
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from_byte` is never used
[INFO] [stderr]   --> src/net/fast/fec.rs:62:12
[INFO] [stderr]    |
[INFO] [stderr] 60 | impl FecPacketType {
[INFO] [stderr]    | ------------------ associated function in this implementation
[INFO] [stderr] 61 |     #[inline]
[INFO] [stderr] 62 |     pub fn from_byte(b: u8) -> Option<Self> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FecHeader` is never constructed
[INFO] [stderr]   --> src/net/fast/fec.rs:78:12
[INFO] [stderr]    |
[INFO] [stderr] 78 | pub struct FecHeader {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `SIZE`, `write_to`, and `read_from` are never used
[INFO] [stderr]   --> src/net/fast/fec.rs:86:15
[INFO] [stderr]    |
[INFO] [stderr] 85 | impl FecHeader {
[INFO] [stderr]    | -------------- associated items in this implementation
[INFO] [stderr] 86 |     pub const SIZE: usize = 5;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 89 |     pub fn write_to(&self, buf: &mut [u8]) {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 97 |     pub fn read_from(buf: &[u8]) -> Option<Self> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FecEncoder` is never constructed
[INFO] [stderr]    --> src/net/fast/fec.rs:113:12
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub struct FecEncoder {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/net/fast/fec.rs:127:12
[INFO] [stderr]     |
[INFO] [stderr] 121 | impl FecEncoder {
[INFO] [stderr]     | --------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 127 |     pub fn new(group_size: u8) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 143 |     pub fn add_packet(&mut self, data: &[u8]) -> Option<(FecHeader, usize)> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 178 |     pub fn get_parity(&self) -> &[u8] {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 184 |     pub fn clear_parity(&mut self, len: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 192 |     pub fn data_header(&self, packet_index: u8) -> FecHeader {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 203 |     pub fn current_index(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 209 |     pub fn current_group(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FecGroup` is never constructed
[INFO] [stderr]    --> src/net/fast/fec.rs:215:8
[INFO] [stderr]     |
[INFO] [stderr] 215 | struct FecGroup {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `is_complete`, `can_recover`, and `missing_index` are never used
[INFO] [stderr]    --> src/net/fast/fec.rs:224:8
[INFO] [stderr]     |
[INFO] [stderr] 223 | impl FecGroup {
[INFO] [stderr]     | ------------- associated items in this implementation
[INFO] [stderr] 224 |     fn new(group_size: u8) -> Self {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 235 |     fn is_complete(&self) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 241 |     fn can_recover(&self) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 252 |     fn missing_index(&self) -> Option<u8> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FecDecoder` is never constructed
[INFO] [stderr]    --> src/net/fast/fec.rs:264:12
[INFO] [stderr]     |
[INFO] [stderr] 264 | pub struct FecDecoder {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `add_packet`, `try_recover`, `evict_oldest`, and `clear` are never used
[INFO] [stderr]    --> src/net/fast/fec.rs:274:12
[INFO] [stderr]     |
[INFO] [stderr] 272 | impl FecDecoder {
[INFO] [stderr]     | --------------- associated items in this implementation
[INFO] [stderr] 273 |     /// Create a new decoder.
[INFO] [stderr] 274 |     pub fn new(group_size: u8) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 286 |     pub fn add_packet(&mut self, header: &FecHeader, data: &[u8]) -> Option<(u8, Vec<u8>)> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 320 |     fn try_recover(&mut self, group_id: u16) -> Option<(u8, Vec<u8>)> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 359 |     fn evict_oldest(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 366 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DELTA_MAX_SIZE` is never used
[INFO] [stderr]   --> src/net/fast/delta.rs:39:11
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub const DELTA_MAX_SIZE: usize = 4096;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MIN_SKIP_RUN` is never used
[INFO] [stderr]   --> src/net/fast/delta.rs:42:7
[INFO] [stderr]    |
[INFO] [stderr] 42 | const MIN_SKIP_RUN: usize = 4;
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DeltaHeader` is never constructed
[INFO] [stderr]   --> src/net/fast/delta.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub struct DeltaHeader {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `SIZE`, `write_to`, and `read_from` are never used
[INFO] [stderr]   --> src/net/fast/delta.rs:56:15
[INFO] [stderr]    |
[INFO] [stderr] 55 | impl DeltaHeader {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] 56 |     pub const SIZE: usize = 4;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 59 |     pub fn write_to(&self, buf: &mut [u8]) {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 65 |     pub fn read_from(buf: &[u8]) -> Option<Self> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DeltaRange` is never constructed
[INFO] [stderr]   --> src/net/fast/delta.rs:78:8
[INFO] [stderr]    |
[INFO] [stderr] 78 | struct DeltaRange {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `SIZE`, `write_to`, and `read_from` are never used
[INFO] [stderr]   --> src/net/fast/delta.rs:84:11
[INFO] [stderr]    |
[INFO] [stderr] 83 | impl DeltaRange {
[INFO] [stderr]    | --------------- associated items in this implementation
[INFO] [stderr] 84 |     const SIZE: usize = 4;
[INFO] [stderr]    |           ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 87 |     fn write_to(&self, buf: &mut [u8]) {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 93 |     fn read_from(buf: &[u8]) -> Option<Self> {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DeltaEncoder` is never constructed
[INFO] [stderr]    --> src/net/fast/delta.rs:105:12
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub struct DeltaEncoder {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `encode`, `encode_full`, `sequence`, and `reset` are never used
[INFO] [stderr]    --> src/net/fast/delta.rs:112:12
[INFO] [stderr]     |
[INFO] [stderr] 110 | impl DeltaEncoder {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] 111 |     /// Create a new delta encoder.
[INFO] [stderr] 112 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 132 |     pub fn encode<'a>(&'a mut self, old: &[u8], new: &[u8]) -> Option<(&'a [u8], usize)> {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 224 |     pub fn encode_full<'a>(&'a mut self, state: &[u8]) -> Option<(&'a [u8], usize)> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 246 |     pub fn sequence(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 251 |     pub fn reset(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DeltaDecoder` is never constructed
[INFO] [stderr]    --> src/net/fast/delta.rs:263:12
[INFO] [stderr]     |
[INFO] [stderr] 263 | pub struct DeltaDecoder {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `apply`, and `last_seq` are never used
[INFO] [stderr]    --> src/net/fast/delta.rs:269:12
[INFO] [stderr]     |
[INFO] [stderr] 267 | impl DeltaDecoder {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] 268 |     /// Create a new decoder.
[INFO] [stderr] 269 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 285 |     pub fn apply(&mut self, delta: &[u8], state: &mut [u8]) -> Result<(), &'static str> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 329 |     pub fn last_seq(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `compression_ratio` is never used
[INFO] [stderr]    --> src/net/fast/delta.rs:342:8
[INFO] [stderr]     |
[INFO] [stderr] 342 | pub fn compression_ratio(original_size: usize, delta_size: usize) -> f32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Priority` is never used
[INFO] [stderr]   --> src/net/fast/priority.rs:35:10
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub enum Priority {
[INFO] [stderr]    |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `COUNT`, `from_u8`, and `suggested_channel` are never used
[INFO] [stderr]   --> src/net/fast/priority.rs:48:15
[INFO] [stderr]    |
[INFO] [stderr] 46 | impl Priority {
[INFO] [stderr]    | ------------- associated items in this implementation
[INFO] [stderr] 47 |     /// Total number of priority levels.
[INFO] [stderr] 48 |     pub const COUNT: usize = 4;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub fn from_u8(v: u8) -> Self {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub fn suggested_channel(&self) -> u8 {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `QueuedPacket` is never constructed
[INFO] [stderr]   --> src/net/fast/priority.rs:80:12
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub struct QueuedPacket {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PriorityQueue` is never constructed
[INFO] [stderr]   --> src/net/fast/priority.rs:91:12
[INFO] [stderr]    |
[INFO] [stderr] 91 | pub struct PriorityQueue {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/net/fast/priority.rs:99:12
[INFO] [stderr]     |
[INFO] [stderr]  97 | impl PriorityQueue {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr]  98 |     /// Create a new priority queue.
[INFO] [stderr]  99 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 104 |     pub fn with_capacity(max_size: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 121 |     pub fn push(&mut self, priority: Priority, peer_id: u16, channel: u8, data: Vec<u8>) -> bool {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 141 |     pub fn pop(&mut self) -> Option<QueuedPacket> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn peek(&self) -> Option<&QueuedPacket> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 164 |     pub fn is_empty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 170 |     pub fn len(&self) -> usize {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 176 |     pub fn total_size(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 182 |     pub fn count_at(&self, priority: Priority) -> usize {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 189 |     pub fn drop_below(&mut self, priority: Priority) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 198 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 208 |     pub fn drain_budget(&mut self, mut budget: usize) -> Vec<QueuedPacket> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WeightedQueue` is never constructed
[INFO] [stderr]    --> src/net/fast/priority.rs:243:12
[INFO] [stderr]     |
[INFO] [stderr] 243 | pub struct WeightedQueue {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `push`, `pop_weighted`, and `is_empty` are never used
[INFO] [stderr]    --> src/net/fast/priority.rs:251:12
[INFO] [stderr]     |
[INFO] [stderr] 249 | impl WeightedQueue {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr] 250 |     /// Create a new weighted queue with default weights.
[INFO] [stderr] 251 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 261 |     pub fn push(&mut self, priority: Priority, peer_id: u16, channel: u8, data: Vec<u8>) -> bool {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 268 |     pub fn pop_weighted(&mut self) -> Option<QueuedPacket> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 298 |     pub fn is_empty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_BUFFER_SIZE` is never used
[INFO] [stderr]   --> src/net/fast/jitter.rs:39:7
[INFO] [stderr]    |
[INFO] [stderr] 39 | const MAX_BUFFER_SIZE: usize = 256;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BufferedPacket` is never constructed
[INFO] [stderr]   --> src/net/fast/jitter.rs:43:12
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub struct BufferedPacket {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `JitterStats` is never constructed
[INFO] [stderr]   --> src/net/fast/jitter.rs:56:12
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub struct JitterStats {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `JitterBuffer` is never constructed
[INFO] [stderr]   --> src/net/fast/jitter.rs:74:12
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub struct JitterBuffer {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/net/fast/jitter.rs:105:12
[INFO] [stderr]     |
[INFO] [stderr] 103 | impl JitterBuffer {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] 104 |     /// Create a new jitter buffer with the specified target delay.
[INFO] [stderr] 105 |     pub fn new(target_delay: Duration) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |     pub fn with_bounds(target: Duration, min: Duration, max: Duration) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 134 |     pub fn push(&mut self, sequence: u32, timestamp: u32, data: Vec<u8>) -> bool {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 186 |     pub fn pop(&mut self) -> Option<BufferedPacket> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 229 |     pub fn stats(&self) -> &JitterStats {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 235 |     pub fn current_delay(&self) -> Duration {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 241 |     pub fn depth(&self) -> usize {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 246 |     pub fn reset(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 255 |     fn update_jitter(&mut self, arrival: Instant, timestamp: u32) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 273 |     fn adapt_delay(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 291 |     fn seq_before(&self, a: u32, b: u32) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 298 |     fn ts_to_duration(&self, ts: u32, base_ts: u32) -> Duration {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WINDOW_SIZE` is never used
[INFO] [stderr]   --> src/net/fast/metrics.rs:33:7
[INFO] [stderr]    |
[INFO] [stderr] 33 | const WINDOW_SIZE: usize = 100;
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SlidingWindow` is never constructed
[INFO] [stderr]   --> src/net/fast/metrics.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | struct SlidingWindow {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `push`, `average`, `min`, and `max` are never used
[INFO] [stderr]   --> src/net/fast/metrics.rs:45:14
[INFO] [stderr]    |
[INFO] [stderr] 44 | impl SlidingWindow {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 45 |     const fn new() -> Self {
[INFO] [stderr]    |              ^^^
[INFO] [stderr] ...
[INFO] [stderr] 55 |     fn push(&mut self, value: u32) {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 70 |     fn average(&self) -> u32 {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 79 |     fn min(&self) -> u32 {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 88 |     fn max(&self) -> u32 {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MetricsSnapshot` is never constructed
[INFO] [stderr]    --> src/net/fast/metrics.rs:105:12
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub struct MetricsSnapshot {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConnectionMetrics` is never constructed
[INFO] [stderr]    --> src/net/fast/metrics.rs:137:12
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub struct ConnectionMetrics {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/net/fast/metrics.rs:175:12
[INFO] [stderr]     |
[INFO] [stderr] 173 | impl ConnectionMetrics {
[INFO] [stderr]     | ---------------------- associated items in this implementation
[INFO] [stderr] 174 |     /// Create new metrics collector.
[INFO] [stderr] 175 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 198 |     pub fn record_sent(&mut self, bytes: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 207 |     pub fn record_received(&mut self, bytes: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 216 |     pub fn record_rtt(&mut self, rtt: Duration) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 231 |     pub fn record_loss(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 237 |     pub fn record_retransmission(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 243 |     pub fn rtt_avg(&self) -> Duration {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 249 |     pub fn jitter(&self) -> Duration {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 255 |     pub fn loss_percent(&self) -> f32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 265 |     pub fn send_rate(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 271 |     pub fn recv_rate(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 276 |     pub fn snapshot(&self) -> MetricsSnapshot {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 296 |     fn maybe_update_rate(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 311 |     pub fn reset(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AggregateMetrics` is never constructed
[INFO] [stderr]    --> src/net/fast/metrics.rs:324:12
[INFO] [stderr]     |
[INFO] [stderr] 324 | pub struct AggregateMetrics {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MetricsCollector` is never constructed
[INFO] [stderr]    --> src/net/fast/metrics.rs:342:12
[INFO] [stderr]     |
[INFO] [stderr] 342 | pub struct MetricsCollector {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `update`, and `aggregate` are never used
[INFO] [stderr]    --> src/net/fast/metrics.rs:347:12
[INFO] [stderr]     |
[INFO] [stderr] 346 | impl MetricsCollector {
[INFO] [stderr]     | --------------------- associated items in this implementation
[INFO] [stderr] 347 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 354 |     pub fn update(&mut self, snapshots: Vec<MetricsSnapshot>) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 359 |     pub fn aggregate(&self) -> AggregateMetrics {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_TICKET_SIZE` is never used
[INFO] [stderr]   --> src/net/fast/reconnect.rs:42:11
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub const MAX_TICKET_SIZE: usize = 256;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_TICKET_LIFETIME` is never used
[INFO] [stderr]   --> src/net/fast/reconnect.rs:45:11
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub const DEFAULT_TICKET_LIFETIME: Duration = Duration::from_secs(300); // 5 minutes
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SessionTicket` is never constructed
[INFO] [stderr]   --> src/net/fast/reconnect.rs:57:12
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub struct SessionTicket {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_bytes` and `as_bytes` are never used
[INFO] [stderr]   --> src/net/fast/reconnect.rs:66:12
[INFO] [stderr]    |
[INFO] [stderr] 64 | impl SessionTicket {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 65 |     /// Create from raw bytes.
[INFO] [stderr] 66 |     pub fn from_bytes(bytes: &[u8]) -> Option<Self> {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 80 |     pub fn as_bytes(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RestoredSession` is never constructed
[INFO] [stderr]   --> src/net/fast/reconnect.rs:87:12
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub struct RestoredSession {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SessionStore` is never constructed
[INFO] [stderr]   --> src/net/fast/reconnect.rs:99:12
[INFO] [stderr]    |
[INFO] [stderr] 99 | pub struct SessionStore {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/net/fast/reconnect.rs:114:12
[INFO] [stderr]     |
[INFO] [stderr] 110 | impl SessionStore {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 114 |     pub fn new(server_key: [u8; 32]) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |     pub fn with_lifetime(mut self, lifetime: Duration) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 136 |     pub fn create_ticket(
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 184 |     pub fn validate_ticket(&mut self, ticket: &SessionTicket) -> Option<RestoredSession> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 247 |     fn derive_encryption_key(&self, ticket_id: &[u8; 16]) -> [u8; 32] {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 255 |     fn compute_hmac(&self, data: &[u8]) -> [u8; 32] {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 263 |     fn maybe_cleanup(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 278 |     pub fn used_ticket_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `constant_time_eq` is never used
[INFO] [stderr]    --> src/net/fast/reconnect.rs:285:4
[INFO] [stderr]     |
[INFO] [stderr] 285 | fn constant_time_eq(a: &[u8], b: &[u8]) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ClientTicketStore` is never constructed
[INFO] [stderr]    --> src/net/fast/reconnect.rs:297:12
[INFO] [stderr]     |
[INFO] [stderr] 297 | pub struct ClientTicketStore {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `store`, `get`, `remove`, and `clear` are never used
[INFO] [stderr]    --> src/net/fast/reconnect.rs:305:12
[INFO] [stderr]     |
[INFO] [stderr] 304 | impl ClientTicketStore {
[INFO] [stderr]     | ---------------------- associated items in this implementation
[INFO] [stderr] 305 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 313 |     pub fn store(&mut self, server_addr: &str, ticket: SessionTicket) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 328 |     pub fn get(&self, server_addr: &str) -> Option<&SessionTicket> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 333 |     pub fn remove(&mut self, server_addr: &str) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 338 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `EntityId` is never used
[INFO] [stderr]   --> src/net/fast/interest.rs:41:10
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub type EntityId = u32;
[INFO] [stderr]    |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Position` is never constructed
[INFO] [stderr]   --> src/net/fast/interest.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub struct Position {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `distance_squared` are never used
[INFO] [stderr]   --> src/net/fast/interest.rs:52:12
[INFO] [stderr]    |
[INFO] [stderr] 50 | impl Position {
[INFO] [stderr]    | ------------- associated items in this implementation
[INFO] [stderr] 51 |     #[inline]
[INFO] [stderr] 52 |     pub fn new(x: f32, y: f32) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 |     pub fn distance_squared(&self, other: &Position) -> f32 {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CellCoord` is never constructed
[INFO] [stderr]   --> src/net/fast/interest.rs:66:8
[INFO] [stderr]    |
[INFO] [stderr] 66 | struct CellCoord {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `InterestGrid` is never constructed
[INFO] [stderr]   --> src/net/fast/interest.rs:72:12
[INFO] [stderr]    |
[INFO] [stderr] 72 | pub struct InterestGrid {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/net/fast/interest.rs:89:12
[INFO] [stderr]     |
[INFO] [stderr]  85 | impl InterestGrid {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  89 |     pub fn new(cell_size: f32) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     pub fn insert(&mut self, id: EntityId, x: f32, y: f32) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 126 |     pub fn remove(&mut self, id: EntityId) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 138 |     pub fn query(&self, x: f32, y: f32, radius: i32) -> Vec<EntityId> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 158 |     pub fn query_radius(&self, x: f32, y: f32, radius: f32) -> Vec<EntityId> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 174 |     pub fn diff_entered(
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 188 |     pub fn diff_left(
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 204 |     pub fn get_position(&self, id: EntityId) -> Option<Position> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 210 |     pub fn len(&self) -> usize {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 216 |     pub fn is_empty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 221 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 229 |     fn pos_to_cell(&self, x: f32, y: f32) -> CellCoord {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PlayerInterest` is never constructed
[INFO] [stderr]    --> src/net/fast/interest.rs:238:12
[INFO] [stderr]     |
[INFO] [stderr] 238 | pub struct PlayerInterest {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `update`, `visible`, and `clear` are never used
[INFO] [stderr]    --> src/net/fast/interest.rs:248:12
[INFO] [stderr]     |
[INFO] [stderr] 247 | impl PlayerInterest {
[INFO] [stderr]     | ------------------- associated items in this implementation
[INFO] [stderr] 248 |     pub fn new(player_id: EntityId, radius: i32) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 259 |     pub fn update(&mut self, grid: &InterestGrid) -> (Vec<EntityId>, Vec<EntityId>) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 281 |     pub fn visible(&self) -> &HashSet<EntityId> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 286 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `UpdatePriority` is never used
[INFO] [stderr]    --> src/net/fast/interest.rs:294:10
[INFO] [stderr]     |
[INFO] [stderr] 294 | pub enum UpdatePriority {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PriorityCalculator` is never constructed
[INFO] [stderr]    --> src/net/fast/interest.rs:306:12
[INFO] [stderr]     |
[INFO] [stderr] 306 | pub struct PriorityCalculator {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `calculate` are never used
[INFO] [stderr]    --> src/net/fast/interest.rs:314:12
[INFO] [stderr]     |
[INFO] [stderr] 313 | impl PriorityCalculator {
[INFO] [stderr]     | ----------------------- associated items in this implementation
[INFO] [stderr] 314 |     pub fn new(high_distance: f32, normal_distance: f32) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 322 |     pub fn calculate(&self, distance: f32, is_player: bool) -> UpdatePriority {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConnectionId` is never constructed
[INFO] [stderr]   --> src/net/fast/migration.rs:43:12
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub struct ConnectionId([u8; 16]);
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `generate`, `from_bytes`, `as_bytes`, `write_to`, and `read_from` are never used
[INFO] [stderr]   --> src/net/fast/migration.rs:47:12
[INFO] [stderr]    |
[INFO] [stderr] 45 | impl ConnectionId {
[INFO] [stderr]    | ----------------- associated items in this implementation
[INFO] [stderr] 46 |     /// Generate a new random connection ID.
[INFO] [stderr] 47 |     pub fn generate() -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn from_bytes(bytes: [u8; 16]) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 60 |     pub fn as_bytes(&self) -> &[u8; 16] {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66 |     pub fn write_to(&self, buf: &mut [u8]) {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 72 |     pub fn read_from(buf: &[u8]) -> Option<Self> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MigrationProof` is never constructed
[INFO] [stderr]   --> src/net/fast/migration.rs:92:12
[INFO] [stderr]    |
[INFO] [stderr] 92 | pub struct MigrationProof {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `SIZE`, `create`, `verify`, `compute_hmac`, `to_bytes`, and `from_bytes` are never used
[INFO] [stderr]    --> src/net/fast/migration.rs:100:15
[INFO] [stderr]     |
[INFO] [stderr]  99 | impl MigrationProof {
[INFO] [stderr]     | ------------------- associated items in this implementation
[INFO] [stderr] 100 |     pub const SIZE: usize = 40; // 32 + 8
[INFO] [stderr]     |               ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 103 |     pub fn create(
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 120 |     pub fn verify(
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 144 |     fn compute_hmac(
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 161 |     pub fn to_bytes(&self) -> [u8; Self::SIZE] {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 169 |     pub fn from_bytes(buf: &[u8]) -> Option<Self> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConnectionState` is never constructed
[INFO] [stderr]    --> src/net/fast/migration.rs:184:8
[INFO] [stderr]     |
[INFO] [stderr] 184 | struct ConnectionState {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MigrationManager` is never constructed
[INFO] [stderr]    --> src/net/fast/migration.rs:194:12
[INFO] [stderr]     |
[INFO] [stderr] 194 | pub struct MigrationManager {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/net/fast/migration.rs:209:12
[INFO] [stderr]     |
[INFO] [stderr] 207 | impl MigrationManager {
[INFO] [stderr]     | --------------------- associated items in this implementation
[INFO] [stderr] 208 |     /// Create a new migration manager.
[INFO] [stderr] 209 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 220 |     pub fn with_rate_limit(mut self, max_per_minute: u32) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 226 |     pub fn with_proof_age(mut self, max_secs: u64) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 232 |     pub fn register(
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 253 |     pub fn remove(&mut self, cid: &ConnectionId) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 261 |     pub fn get_cid(&self, addr: &SocketAddr) -> Option<ConnectionId> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 267 |     pub fn get_peer_id(&self, cid: &ConnectionId) -> Option<u16> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 273 |     pub fn get_addr(&self, cid: &ConnectionId) -> Option<SocketAddr> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 280 |     pub fn validate_migration(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 330 |     pub fn touch(&mut self, cid: &ConnectionId) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 337 |     pub fn cleanup(&mut self) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 352 |     pub fn connection_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ClientMigration` is never constructed
[INFO] [stderr]    --> src/net/fast/migration.rs:364:12
[INFO] [stderr]     |
[INFO] [stderr] 364 | pub struct ClientMigration {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `check_migration`, `connection_id`, and `server_addr` are never used
[INFO] [stderr]    --> src/net/fast/migration.rs:377:12
[INFO] [stderr]     |
[INFO] [stderr] 375 | impl ClientMigration {
[INFO] [stderr]     | -------------------- associated items in this implementation
[INFO] [stderr] 376 |     /// Create a new client migration state.
[INFO] [stderr] 377 |     pub fn new(cid: ConnectionId, session_key: [u8; 32], server_addr: SocketAddr) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 389 |     pub fn check_migration(&mut self, current_addr: SocketAddr) -> Option<MigrationProof> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 411 |     pub fn connection_id(&self) -> ConnectionId {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 417 |     pub fn server_addr(&self) -> SocketAddr {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `addr_to_bytes` is never used
[INFO] [stderr]    --> src/net/fast/migration.rs:423:4
[INFO] [stderr]     |
[INFO] [stderr] 423 | fn addr_to_bytes(addr: SocketAddr) -> [u8; 18] {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `constant_time_eq` is never used
[INFO] [stderr]    --> src/net/fast/migration.rs:443:4
[INFO] [stderr]     |
[INFO] [stderr] 443 | fn constant_time_eq(a: &[u8], b: &[u8]) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_PACKET_SIZE` is never used
[INFO] [stderr]   --> src/net/fast/bbr.rs:21:7
[INFO] [stderr]    |
[INFO] [stderr] 21 | const MAX_PACKET_SIZE: usize = 1200;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PROBE_BW_GAIN_CYCLE` is never used
[INFO] [stderr]   --> src/net/fast/bbr.rs:24:7
[INFO] [stderr]    |
[INFO] [stderr] 24 | const PROBE_BW_GAIN_CYCLE: [f64; 8] = [1.25, 0.75, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0];
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `STARTUP_GAIN` is never used
[INFO] [stderr]   --> src/net/fast/bbr.rs:27:7
[INFO] [stderr]    |
[INFO] [stderr] 27 | const STARTUP_GAIN: f64 = 2.885; // 2/ln(2)
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DRAIN_GAIN` is never used
[INFO] [stderr]   --> src/net/fast/bbr.rs:30:7
[INFO] [stderr]    |
[INFO] [stderr] 30 | const DRAIN_GAIN: f64 = 1.0 / STARTUP_GAIN;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PROBE_RTT_DURATION` is never used
[INFO] [stderr]   --> src/net/fast/bbr.rs:33:7
[INFO] [stderr]    |
[INFO] [stderr] 33 | const PROBE_RTT_DURATION: Duration = Duration::from_millis(200);
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RTPROP_FILTER_LEN` is never used
[INFO] [stderr]   --> src/net/fast/bbr.rs:36:7
[INFO] [stderr]    |
[INFO] [stderr] 36 | const RTPROP_FILTER_LEN: Duration = Duration::from_secs(10);
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BTLBW_FILTER_LEN` is never used
[INFO] [stderr]   --> src/net/fast/bbr.rs:39:7
[INFO] [stderr]    |
[INFO] [stderr] 39 | const BTLBW_FILTER_LEN: usize = 10;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MIN_CWND` is never used
[INFO] [stderr]   --> src/net/fast/bbr.rs:42:7
[INFO] [stderr]    |
[INFO] [stderr] 42 | const MIN_CWND: u32 = 4;
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `INITIAL_CWND` is never used
[INFO] [stderr]   --> src/net/fast/bbr.rs:45:7
[INFO] [stderr]    |
[INFO] [stderr] 45 | const INITIAL_CWND: u32 = 10;
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `BbrState` is never used
[INFO] [stderr]   --> src/net/fast/bbr.rs:49:10
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub enum BbrState {
[INFO] [stderr]    |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MaxFilter` is never constructed
[INFO] [stderr]   --> src/net/fast/bbr.rs:62:8
[INFO] [stderr]    |
[INFO] [stderr] 62 | struct MaxFilter {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `update`, `get`, and `reset` are never used
[INFO] [stderr]    --> src/net/fast/bbr.rs:68:8
[INFO] [stderr]     |
[INFO] [stderr]  67 | impl MaxFilter {
[INFO] [stderr]     | -------------- associated items in this implementation
[INFO] [stderr]  68 |     fn new(window_len: usize) -> Self {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] ...
[INFO] [stderr]  76 |     fn update(&mut self, value: u64, now: Instant) -> u64 {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  97 |     fn get(&self) -> u64 {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 101 |     fn reset(&mut self) {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MinFilter` is never constructed
[INFO] [stderr]    --> src/net/fast/bbr.rs:108:8
[INFO] [stderr]     |
[INFO] [stderr] 108 | struct MinFilter {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `update`, `get`, and `expired` are never used
[INFO] [stderr]    --> src/net/fast/bbr.rs:115:8
[INFO] [stderr]     |
[INFO] [stderr] 114 | impl MinFilter {
[INFO] [stderr]     | -------------- associated items in this implementation
[INFO] [stderr] 115 |     fn new(window: Duration) -> Self {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |     fn update(&mut self, rtt: Duration, now: Instant) -> Duration {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 137 |     fn get(&self) -> Duration {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 141 |     fn expired(&self, now: Instant) -> bool {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BbrCongestionControl` is never constructed
[INFO] [stderr]    --> src/net/fast/bbr.rs:148:12
[INFO] [stderr]     |
[INFO] [stderr] 148 | pub struct BbrCongestionControl {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/net/fast/bbr.rs:198:12
[INFO] [stderr]     |
[INFO] [stderr] 196 | impl BbrCongestionControl {
[INFO] [stderr]     | ------------------------- associated items in this implementation
[INFO] [stderr] 197 |     /// Create new BBR congestion control.
[INFO] [stderr] 198 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 239 |     pub fn on_send(&mut self, _bytes: usize) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 248 |     pub fn on_ack(&mut self, bytes_acked: usize, rtt: Duration) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 288 |     pub fn on_loss(&mut self, _bytes_lost: usize) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 297 |     pub fn on_timeout(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 306 |     pub fn available_window(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 312 |     pub fn cwnd(&self) -> u32 {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 318 |     pub fn pacing_rate(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 324 |     pub fn bandwidth(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 330 |     pub fn min_rtt(&self) -> Duration {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 336 |     pub fn state(&self) -> BbrState {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 342 |     pub fn pacing_interval(&self) -> Duration {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 353 |     fn calculate_delivery_rate(&self, now: Instant) -> u64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 365 |     fn update_round(&mut self, _now: Instant) {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 375 |     fn check_full_pipe(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 397 |     fn update_startup(&mut self, now: Instant) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 403 |     fn enter_drain(&mut self, now: Instant) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 410 |     fn update_drain(&mut self, now: Instant) {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 418 |     fn enter_probe_bw(&mut self, now: Instant) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 426 |     fn update_probe_bw(&mut self, now: Instant) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 441 |     fn enter_probe_rtt(&mut self, now: Instant) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 455 |     fn update_probe_rtt(&mut self, now: Instant) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 475 |     fn restore_after_probe_rtt(&mut self, now: Instant) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 485 |     fn update_pacing_rate(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 495 |     fn update_cwnd(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 511 |     fn bdp(&self) -> u64 {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_GROUP_SIZE` is never used
[INFO] [stderr]   --> src/net/fast/fec.rs:48:11
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub const DEFAULT_GROUP_SIZE: u8 = 4;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `current_index` and `current_group` are never used
[INFO] [stderr]    --> src/net/fast/fec.rs:203:12
[INFO] [stderr]     |
[INFO] [stderr] 121 | impl FecEncoder {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 203 |     pub fn current_index(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 209 |     pub fn current_group(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `group_size` is never read
[INFO] [stderr]    --> src/net/fast/fec.rs:265:5
[INFO] [stderr]     |
[INFO] [stderr] 264 | pub struct FecDecoder {
[INFO] [stderr]     |            ---------- field in this struct
[INFO] [stderr] 265 |     group_size: u8,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `clear` is never used
[INFO] [stderr]    --> src/net/fast/fec.rs:366:12
[INFO] [stderr]     |
[INFO] [stderr] 272 | impl FecDecoder {
[INFO] [stderr]     | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 366 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `sequence` and `reset` are never used
[INFO] [stderr]    --> src/net/fast/delta.rs:246:12
[INFO] [stderr]     |
[INFO] [stderr] 110 | impl DeltaEncoder {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 246 |     pub fn sequence(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 251 |     pub fn reset(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `last_seq` is never used
[INFO] [stderr]    --> src/net/fast/delta.rs:329:12
[INFO] [stderr]     |
[INFO] [stderr] 267 | impl DeltaDecoder {
[INFO] [stderr]     | ----------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 329 |     pub fn last_seq(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_u8` and `suggested_channel` are never used
[INFO] [stderr]   --> src/net/fast/priority.rs:51:12
[INFO] [stderr]    |
[INFO] [stderr] 46 | impl Priority {
[INFO] [stderr]    | ------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub fn from_u8(v: u8) -> Self {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub fn suggested_channel(&self) -> u8 {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `peer_id` and `channel` are never read
[INFO] [stderr]   --> src/net/fast/priority.rs:81:9
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub struct QueuedPacket {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr] 81 |     pub peer_id: u16,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 82 |     pub channel: u8,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `QueuedPacket` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `peek`, `is_empty`, `total_size`, `count_at`, and `clear` are never used
[INFO] [stderr]    --> src/net/fast/priority.rs:153:12
[INFO] [stderr]     |
[INFO] [stderr]  97 | impl PriorityQueue {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn peek(&self) -> Option<&QueuedPacket> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 164 |     pub fn is_empty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 176 |     pub fn total_size(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 182 |     pub fn count_at(&self, priority: Priority) -> usize {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 198 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_empty` is never used
[INFO] [stderr]    --> src/net/fast/priority.rs:298:12
[INFO] [stderr]     |
[INFO] [stderr] 249 | impl WeightedQueue {
[INFO] [stderr]     | ------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 298 |     pub fn is_empty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `data` is never read
[INFO] [stderr]   --> src/net/fast/jitter.rs:49:9
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub struct BufferedPacket {
[INFO] [stderr]    |            -------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub data: Vec<u8>,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BufferedPacket` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `with_bounds`, `current_delay`, and `reset` are never used
[INFO] [stderr]    --> src/net/fast/jitter.rs:124:12
[INFO] [stderr]     |
[INFO] [stderr] 103 | impl JitterBuffer {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 124 |     pub fn with_bounds(target: Duration, min: Duration, max: Duration) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 235 |     pub fn current_delay(&self) -> Duration {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 246 |     pub fn reset(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rtt_min_us`, `rtt_max_us`, `jitter_us`, `packets_received`, `retransmissions`, and `uptime` are never read
[INFO] [stderr]    --> src/net/fast/metrics.rs:109:9
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub struct MetricsSnapshot {
[INFO] [stderr]     |            --------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 109 |     pub rtt_min_us: u32,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 110 |     /// Maximum RTT in microseconds.
[INFO] [stderr] 111 |     pub rtt_max_us: u32,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 112 |     /// Jitter (RTT variance) in microseconds.
[INFO] [stderr] 113 |     pub jitter_us: u32,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 121 |     pub packets_received: u64,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 127 |     pub retransmissions: u64,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 133 |     pub uptime: Duration,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `MetricsSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `record_retransmission`, `rtt_avg`, `send_rate`, `recv_rate`, and `reset` are never used
[INFO] [stderr]    --> src/net/fast/metrics.rs:237:12
[INFO] [stderr]     |
[INFO] [stderr] 173 | impl ConnectionMetrics {
[INFO] [stderr]     | ---------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 237 |     pub fn record_retransmission(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 243 |     pub fn rtt_avg(&self) -> Duration {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 265 |     pub fn send_rate(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 271 |     pub fn recv_rate(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 311 |     pub fn reset(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `used_ticket_count` is never used
[INFO] [stderr]    --> src/net/fast/reconnect.rs:278:12
[INFO] [stderr]     |
[INFO] [stderr] 110 | impl SessionStore {
[INFO] [stderr]     | ----------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 278 |     pub fn used_ticket_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `clear` is never used
[INFO] [stderr]    --> src/net/fast/reconnect.rs:338:12
[INFO] [stderr]     |
[INFO] [stderr] 304 | impl ClientTicketStore {
[INFO] [stderr]     | ---------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 338 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `cell_size` is never read
[INFO] [stderr]   --> src/net/fast/interest.rs:74:5
[INFO] [stderr]    |
[INFO] [stderr] 72 | pub struct InterestGrid {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] 73 |     /// Cell size in world units.
[INFO] [stderr] 74 |     cell_size: f32,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `len`, `is_empty`, and `clear` are never used
[INFO] [stderr]    --> src/net/fast/interest.rs:210:12
[INFO] [stderr]     |
[INFO] [stderr]  85 | impl InterestGrid {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 210 |     pub fn len(&self) -> usize {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 216 |     pub fn is_empty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 221 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `visible` and `clear` are never used
[INFO] [stderr]    --> src/net/fast/interest.rs:281:12
[INFO] [stderr]     |
[INFO] [stderr] 247 | impl PlayerInterest {
[INFO] [stderr]     | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 281 |     pub fn visible(&self) -> &HashSet<EntityId> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 286 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from_bytes` is never used
[INFO] [stderr]   --> src/net/fast/migration.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 45 | impl ConnectionId {
[INFO] [stderr]    | ----------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn from_bytes(bytes: [u8; 16]) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `connection_timeout` is never read
[INFO] [stderr]    --> src/net/fast/migration.rs:204:5
[INFO] [stderr]     |
[INFO] [stderr] 194 | pub struct MigrationManager {
[INFO] [stderr]     |            ---------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 204 |     connection_timeout: Duration,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `with_proof_age`, `remove`, `get_cid`, `touch`, `cleanup`, and `connection_count` are never used
[INFO] [stderr]    --> src/net/fast/migration.rs:226:12
[INFO] [stderr]     |
[INFO] [stderr] 207 | impl MigrationManager {
[INFO] [stderr]     | --------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 226 |     pub fn with_proof_age(mut self, max_secs: u64) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 253 |     pub fn remove(&mut self, cid: &ConnectionId) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 261 |     pub fn get_cid(&self, addr: &SocketAddr) -> Option<ConnectionId> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 330 |     pub fn touch(&mut self, cid: &ConnectionId) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 337 |     pub fn cleanup(&mut self) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 352 |     pub fn connection_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `server_addr` is never read
[INFO] [stderr]    --> src/net/fast/migration.rs:370:5
[INFO] [stderr]     |
[INFO] [stderr] 364 | pub struct ClientMigration {
[INFO] [stderr]     |            --------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 370 |     server_addr: SocketAddr,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `connection_id` and `server_addr` are never used
[INFO] [stderr]    --> src/net/fast/migration.rs:411:12
[INFO] [stderr]     |
[INFO] [stderr] 375 | impl ClientMigration {
[INFO] [stderr]     | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 411 |     pub fn connection_id(&self) -> ConnectionId {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 417 |     pub fn server_addr(&self) -> SocketAddr {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `reset` is never used
[INFO] [stderr]    --> src/net/fast/bbr.rs:101:8
[INFO] [stderr]     |
[INFO] [stderr]  67 | impl MaxFilter {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 101 |     fn reset(&mut self) {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `delivered_time` is never read
[INFO] [stderr]    --> src/net/fast/bbr.rs:172:5
[INFO] [stderr]     |
[INFO] [stderr] 148 | pub struct BbrCongestionControl {
[INFO] [stderr]     |            -------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 172 |     delivered_time: Instant,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `BbrCongestionControl` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `on_timeout`, `cwnd`, `pacing_rate`, `bandwidth`, and `state` are never used
[INFO] [stderr]    --> src/net/fast/bbr.rs:297:12
[INFO] [stderr]     |
[INFO] [stderr] 196 | impl BbrCongestionControl {
[INFO] [stderr]     | ------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 297 |     pub fn on_timeout(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 312 |     pub fn cwnd(&self) -> u32 {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 318 |     pub fn pacing_rate(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 324 |     pub fn bandwidth(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 336 |     pub fn state(&self) -> BbrState {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `fastnet` (lib) generated 92 warnings
[INFO] [stderr] warning: `fastnet` (lib test) generated 27 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.18s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/fastnet-82c477e681547141)
[INFO] [stdout] 
[INFO] [stdout] running 59 tests
[INFO] [stdout] test net::fast::bbr::tests::test_bbr_available_window ... ok
[INFO] [stdout] test net::fast::bbr::tests::test_bbr_creation ... ok
[INFO] [stdout] test net::fast::bbr::tests::test_bbr_min_rtt ... ok
[INFO] [stdout] test net::fast::delta::tests::test_delta_full_state_fallback ... ok
[INFO] [stdout] test net::fast::delta::tests::test_delta_game_state_simulation ... ok
[INFO] [stdout] test net::fast::delta::tests::test_delta_header_roundtrip ... ok
[INFO] [stdout] test net::fast::delta::tests::test_delta_multiple_changes ... ok
[INFO] [stdout] test net::fast::delta::tests::test_delta_no_changes ... ok
[INFO] [stdout] test net::fast::delta::tests::test_delta_single_byte_change ... ok
[INFO] [stdout] test net::fast::fec::tests::test_fec_header_roundtrip ... ok
[INFO] [stdout] test net::fast::fec::tests::test_fec_multiple_groups ... ok
[INFO] [stdout] test net::fast::fec::tests::test_fec_no_loss ... ok
[INFO] [stdout] test net::fast::fec::tests::test_fec_single_loss_recovery ... ok
[INFO] [stdout] test net::fast::interest::tests::test_grid_insert_query ... ok
[INFO] [stdout] test net::fast::interest::tests::test_grid_move_entity ... ok
[INFO] [stdout] test net::fast::bbr::tests::test_bbr_pacing_rate ... ok
[INFO] [stdout] test net::fast::interest::tests::test_grid_remove ... ok
[INFO] [stdout] test net::fast::bbr::tests::test_bbr_startup_to_drain ... ok
[INFO] [stdout] test net::fast::channel::tests::test_reliable_ordered ... ok
[INFO] [stdout] test net::fast::channel::tests::test_unreliable_channel ... ok
[INFO] [stdout] test net::fast::interest::tests::test_player_interest ... ok
[INFO] [stdout] test net::fast::bbr::tests::test_bbr_loss_handling ... ok
[INFO] [stdout] test net::fast::bbr::tests::test_pacing_interval ... ok
[INFO] [stdout] test net::fast::jitter::tests::test_jitter_stats ... ok
[INFO] [stdout] test net::fast::metrics::tests::test_aggregate_metrics ... ok
[INFO] [stdout] test net::fast::metrics::tests::test_connection_metrics ... ok
[INFO] [stdout] test net::fast::metrics::tests::test_jitter_calculation ... ok
[INFO] [stdout] test net::fast::metrics::tests::test_sliding_window ... ok
[INFO] [stdout] test net::fast::migration::tests::test_client_migration ... ok
[INFO] [stdout] test net::fast::migration::tests::test_connection_id ... ok
[INFO] [stdout] test net::fast::migration::tests::test_migration_manager ... ok
[INFO] [stdout] test net::fast::migration::tests::test_migration_proof ... ok
[INFO] [stdout] test net::fast::migration::tests::test_migration_rate_limit ... ok
[INFO] [stdout] test net::fast::migration::tests::test_proof_serialization ... ok
[INFO] [stdout] test net::fast::packet::tests::test_fragmentation ... ok
[INFO] [stdout] test net::fast::packet::tests::test_header_roundtrip ... ok
[INFO] [stdout] test net::fast::peer::tests::test_congestion_control ... ok
[INFO] [stdout] test net::fast::peer::tests::test_peer_creation ... ok
[INFO] [stdout] test net::fast::peer::tests::test_rtt_estimation ... ok
[INFO] [stdout] test net::fast::jitter::tests::test_jitter_buffer_basic ... ok
[INFO] [stdout] test net::fast::priority::tests::test_critical_bypass_capacity ... ok
[INFO] [stdout] test net::fast::interest::tests::test_priority_calculator ... ok
[INFO] [stdout] test net::fast::interest::tests::test_query_radius ... ok
[INFO] [stdout] test net::fast::priority::tests::test_drop_below ... ok
[INFO] [stdout] test net::fast::priority::tests::test_priority_ordering ... ok
[INFO] [stdout] test net::fast::priority::tests::test_same_priority_fifo ... ok
[INFO] [stdout] test net::fast::priority::tests::test_drain_budget ... ok
[INFO] [stdout] test net::fast::reconnect::tests::test_constant_time_eq ... ok
[INFO] [stdout] test net::fast::priority::tests::test_weighted_queue ... ok
[INFO] [stdout] test net::fast::reconnect::tests::test_client_store ... ok
[INFO] [stdout] test net::fast::reconnect::tests::test_ticket_replay_protection ... ok
[INFO] [stdout] test net::fast::reconnect::tests::test_ticket_roundtrip ... ok
[INFO] [stdout] test net::fast::reconnect::tests::test_ticket_tampering ... ok
[INFO] [stdout] test net::fast::tuning::tests::test_default_config ... ok
[INFO] [stdout] test net::fast::tuning::tests::test_low_latency_config ... ok
[INFO] [stdout] test net::fast::channel::tests::test_sequence_comparison ... ok
[INFO] [stdout] test net::fast::jitter::tests::test_jitter_buffer_ordering ... ok
[INFO] [stdout] test net::fast::jitter::tests::test_jitter_buffer_duplicate ... ok
[INFO] [stderr]    Doc-tests fastnet
[INFO] [stdout] test net::fast::reconnect::tests::test_ticket_expiry ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 59 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test src/net/fast/delta.rs - net::fast::delta (line 15) ... ignored
[INFO] [stdout] test src/net/fast/fec.rs - net::fast::fec (line 14) ... ignored
[INFO] [stdout] test src/net/fast/interest.rs - net::fast::interest (line 21) ... ignored
[INFO] [stdout] test src/net/fast/jitter.rs - net::fast::jitter (line 16) ... ignored
[INFO] [stdout] test src/net/fast/metrics.rs - net::fast::metrics (line 15) ... ignored
[INFO] [stdout] test src/net/fast/migration.rs - net::fast::migration (line 22) ... ignored
[INFO] [stdout] test src/net/fast/priority.rs - net::fast::priority (line 15) ... ignored
[INFO] [stdout] test src/net/fast/reconnect.rs - net::fast::reconnect (line 23) ... ignored
[INFO] [stdout] test src/net/fast/secure.rs - net::fast::secure::SecureEvent (line 54) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 60) - compile ... ok
[INFO] [stdout] test src/net/fast/secure.rs - net::fast::secure::SecureSocket::poll (line 551) - compile ... FAILED
[INFO] [stdout] test src/net/fast/secure.rs - net::fast::secure::SecureSocket::send (line 488) - compile ... FAILED
[INFO] [stdout] test src/net/fast/secure.rs - net::fast::secure::SecureSocket::local_udp_addr (line 404) - compile ... ok
[INFO] [stdout] test src/assets/mod.rs - assets (line 36) - compile ... ok
[INFO] [stdout] test src/assets/mod.rs - assets (line 56) - compile ... FAILED
[INFO] [stdout] test src/p2p/mod.rs - p2p (line 41) - compile ... FAILED
[INFO] [stdout] test src/lib.rs - (line 24) - compile ... ok
[INFO] [stdout] test src/net/fast/secure.rs - net::fast::secure::SecureSocket (line 243) - compile ... FAILED
[INFO] [stdout] test src/tcp/mod.rs - tcp (line 27) - compile ... ok
[INFO] [stdout] test src/p2p/mod.rs - p2p::P2PSocket::connect (line 251) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/net/fast/secure.rs - net::fast::secure::SecureSocket::poll (line 551) stdout ----
[INFO] [stdout] error[E0277]: the `?` operator can only be used in an async function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]    --> src/net/fast/secure.rs:555:33
[INFO] [stdout]     |
[INFO] [stdout] 554 |   async fn example(socket: &mut SecureSocket) {
[INFO] [stdout]     |  _____________________________________________-
[INFO] [stdout] 555 | | for event in socket.poll().await? {
[INFO] [stdout]     | |                                 ^ cannot use the `?` operator in an async function that returns `()`
[INFO] [stdout] 556 | |     match event {
[INFO] [stdout] 557 | |         SecureEvent::Connected(peer_id) => {
[INFO] [stdout] ...   |
[INFO] [stdout] 568 | | Ok::<(), std::io::Error>(())
[INFO] [stdout] 569 | | }
[INFO] [stdout]     | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/net/fast/secure.rs:568:1
[INFO] [stdout]     |
[INFO] [stdout] 554 | async fn example(socket: &mut SecureSocket) {
[INFO] [stdout]     |                                            - help: try adding a return type: `-> Result<(), std::io::Error>`
[INFO] [stdout] ...
[INFO] [stdout] 568 | Ok::<(), std::io::Error>(())
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Result<(), Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                     found enum `Result<(), std::io::Error>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/net/fast/secure.rs - net::fast::secure::SecureSocket::send (line 488) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `position_bytes` in this scope
[INFO] [stdout]    --> src/net/fast/secure.rs:496:25
[INFO] [stdout]     |
[INFO] [stdout] 496 | socket.send(peer_id, 1, position_bytes).await.unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/assets/mod.rs - assets (line 56) stdout ----
[INFO] [stdout] error[E0599]: no method named `request` found for struct `AssetClient` in the current scope
[INFO] [stdout]   --> src/assets/mod.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 |     client.request("map_forest.pak", "/local/maps/forest.pak").await?;
[INFO] [stdout]    |            ^^^^^^^ method not found in `AssetClient`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `poll` found for struct `AssetClient` in the current scope
[INFO] [stdout]   --> src/assets/mod.rs:69:29
[INFO] [stdout]    |
[INFO] [stdout] 69 |         for event in client.poll().await? {
[INFO] [stdout]    |                             ^^^^ method not found in `AssetClient`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `PathBuf` doesn't implement `std::fmt::Display`
[INFO] [stdout]   --> src/assets/mod.rs:76:48
[INFO] [stdout]    |
[INFO] [stdout] 76 |                     println!("Downloaded: {}", path);
[INFO] [stdout]    |                                           --   ^^^^ `PathBuf` cannot be formatted with the default formatter; call `.display()` on it
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           required by this formatting parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `std::fmt::Display` is not implemented for `PathBuf`
[INFO] [stdout]    = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout]    = note: call `.display()` or `.to_string_lossy()` to safely print paths, as they may contain non-Unicode data
[INFO] [stdout]    = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/p2p/mod.rs - p2p (line 41) stdout ----
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `P2PEvent::PeerRelayed(_)` and `P2PEvent::Error(_, _)` not covered
[INFO] [stdout]    --> src/p2p/mod.rs:55:19
[INFO] [stdout]     |
[INFO] [stdout]  55 |             match event {
[INFO] [stdout]     |                   ^^^^^ patterns `P2PEvent::PeerRelayed(_)` and `P2PEvent::Error(_, _)` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `P2PEvent` defined here
[INFO] [stdout]    --> src/p2p/mod.rs:93:1
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub enum P2PEvent {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     PeerRelayed(PeerId),
[INFO] [stdout]     |     ----------- not covered
[INFO] [stdout] ...
[INFO] [stdout] 110 |     Error(PeerId, P2PError),
[INFO] [stdout]     |     ----- not covered
[INFO] [stdout]     = note: the matched value is of type `P2PEvent`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout]  67 ~                 },
[INFO] [stdout]  68 +                 P2PEvent::PeerRelayed(_) | P2PEvent::Error(_, _) => todo!()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0004`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/net/fast/secure.rs - net::fast::secure::SecureSocket (line 243) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `certs` in this scope
[INFO] [stdout]    --> src/net/fast/secure.rs:251:5
[INFO] [stdout]     |
[INFO] [stdout] 251 |     certs,
[INFO] [stdout]     |     ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 242 + use rustls_pemfile::certs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `key` in this scope
[INFO] [stdout]    --> src/net/fast/secure.rs:252:5
[INFO] [stdout]     |
[INFO] [stdout] 252 |     key,
[INFO] [stdout]     |     ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/assets/mod.rs - assets (line 56)
[INFO] [stdout]     src/net/fast/secure.rs - net::fast::secure::SecureSocket (line 243)
[INFO] [stdout]     src/net/fast/secure.rs - net::fast::secure::SecureSocket::poll (line 551)
[INFO] [stdout]     src/net/fast/secure.rs - net::fast::secure::SecureSocket::send (line 488)
[INFO] [stdout]     src/p2p/mod.rs - p2p (line 41)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 7 passed; 5 failed; 8 ignored; 0 measured; 0 filtered out; finished in 0.78s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "d7849e631c108e9798a96a55e49f21b17fa64bd71ad91331841bc7b67997cace", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d7849e631c108e9798a96a55e49f21b17fa64bd71ad91331841bc7b67997cace", kill_on_drop: false }`
[INFO] [stdout] d7849e631c108e9798a96a55e49f21b17fa64bd71ad91331841bc7b67997cace
