[INFO] cloning repository https://github.com/BorisWeinfurt/elvis-python-impl
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BorisWeinfurt/elvis-python-impl" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBorisWeinfurt%2Felvis-python-impl", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBorisWeinfurt%2Felvis-python-impl'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f1e14e22174ed131bdac73e6b0fab9bfff076a7f
[INFO] checking BorisWeinfurt/elvis-python-impl against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBorisWeinfurt%2Felvis-python-impl" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/BorisWeinfurt/elvis-python-impl
[INFO] finished tweaking git repo https://github.com/BorisWeinfurt/elvis-python-impl
[INFO] tweaked toml for git repo https://github.com/BorisWeinfurt/elvis-python-impl written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/BorisWeinfurt/elvis-python-impl on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/BorisWeinfurt/elvis-python-impl already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: package.debug
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bae1d617729ba32558d807d028fe8ef5d5d6c62f8b8970c7a97aa8d8d4841529
[INFO] running `Command { std: "docker" "start" "-a" "bae1d617729ba32558d807d028fe8ef5d5d6c62f8b8970c7a97aa8d8d4841529", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bae1d617729ba32558d807d028fe8ef5d5d6c62f8b8970c7a97aa8d8d4841529", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bae1d617729ba32558d807d028fe8ef5d5d6c62f8b8970c7a97aa8d8d4841529", kill_on_drop: false }`
[INFO] [stdout] bae1d617729ba32558d807d028fe8ef5d5d6c62f8b8970c7a97aa8d8d4841529
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dunmustuse_in_always_ok" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d7affa13e1d6e8884d1c9d26d8ac1586897abb7d3a75c1575a1ee30dbd84e7d2
[INFO] running `Command { std: "docker" "start" "-a" "d7affa13e1d6e8884d1c9d26d8ac1586897abb7d3a75c1575a1ee30dbd84e7d2", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: package.debug
[INFO] [stderr]    Compiling target-lexicon v0.12.15
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]     Checking regex-syntax v0.8.4
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling smoltcp v0.11.0
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking anstyle-query v1.1.1
[INFO] [stderr]     Checking anstyle-parse v0.2.5
[INFO] [stderr]     Checking colorchoice v1.0.2
[INFO] [stderr]     Checking anstyle v1.0.8
[INFO] [stderr]    Compiling indoc v2.0.5
[INFO] [stderr]     Checking unindent v0.2.3
[INFO] [stderr]     Checking managed v0.8.0
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking hash32 v0.3.1
[INFO] [stderr]     Checking anstream v0.6.15
[INFO] [stderr]    Compiling pyo3-build-config v0.23.0-dev (https://github.com/pyo3/pyo3#1ca484dc)
[INFO] [stderr]     Checking regex-automata v0.4.7
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling syn v2.0.72
[INFO] [stderr]    Compiling pyo3-ffi v0.23.0-dev (https://github.com/pyo3/pyo3#1ca484dc)
[INFO] [stderr]    Compiling pyo3-macros-backend v0.23.0-dev (https://github.com/pyo3/pyo3#1ca484dc)
[INFO] [stderr]    Compiling pyo3 v0.23.0-dev (https://github.com/pyo3/pyo3#1ca484dc)
[INFO] [stderr]     Checking regex v1.10.5
[INFO] [stderr]     Checking env_filter v0.1.2
[INFO] [stderr]     Checking env_logger v0.11.5
[INFO] [stderr]    Compiling pyo3-macros v0.23.0-dev (https://github.com/pyo3/pyo3#1ca484dc)
[INFO] [stderr]     Checking smol-play v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `pymethods`
[INFO] [stdout]  --> src/channel.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use pyo3::{pyclass, pymethods};
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Config`, `Context`, `Interface`, `IpAddress`, `IpCidr`, `Ipv4Address`, and `SocketSet`
[INFO] [stdout]   --> src/machine.rs:9:13
[INFO] [stdout]    |
[INFO] [stdout]  9 |     iface::{Config, Context, Interface, SocketSet},
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     wire::{EthernetAddress, IpAddress, IpCidr, Ipv4Address},
[INFO] [stdout]    |                             ^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell`, `collections::VecDeque`, `net::Ipv4Addr`, and `rc::Rc`
[INFO] [stdout]   --> src/machine.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     cell::RefCell,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     collections::VecDeque,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     net::Ipv4Addr,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 18 |     rc::Rc,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `borrow::BorrowMut` and `str::FromStr`
[INFO] [stdout]  --> src/node/node.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{borrow::BorrowMut, str::FromStr};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::machine::MyCoolMachine`
[INFO] [stdout]  --> src/node/node.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::machine::MyCoolMachine;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pymethods`
[INFO] [stdout]  --> src/channel.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use pyo3::{pyclass, pymethods};
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dhcpv4::Socket`
[INFO] [stdout]  --> src/node/node.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |         dhcpv4::Socket,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `borrow::BorrowMut` and `str::FromStr`
[INFO] [stdout]  --> src/node/node.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{borrow::BorrowMut, str::FromStr};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::machine::MyCoolMachine`
[INFO] [stdout]  --> src/node/node.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::machine::MyCoolMachine;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dhcpv4::Socket`
[INFO] [stdout]  --> src/node/node.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |         dhcpv4::Socket,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Config`, `Context`, `Interface`, `IpAddress`, `IpCidr`, `IpEndpoint`, `IpListenEndpoint`, `Ipv4Address`, `SocketHandle`, `SocketSet`, `State`, `dhcpv4::Socket`, `phy::Device`, `self`, and `time::Instant`
[INFO] [stdout]   --> src/node/py_node.rs:6:13
[INFO] [stdout]    |
[INFO] [stdout]  6 |     iface::{Config, Context, Interface, SocketHandle, SocketSet},
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]  7 |     phy::Device,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]  8 |     socket::{
[INFO] [stdout]  9 |         dhcpv4::Socket,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 10 |         tcp::{self, State},
[INFO] [stdout]    |               ^^^^  ^^^^^
[INFO] [stdout] 11 |     },
[INFO] [stdout] 12 |     time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 13 |     wire::{IpAddress, IpCidr, IpEndpoint, IpListenEndpoint, Ipv4Address},
[INFO] [stdout]    |            ^^^^^^^^^  ^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pyo3::exceptions::PyValueError`
[INFO] [stdout]  --> src/util.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pyo3::exceptions::PyValueError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HardwareAddress`
[INFO] [stdout]  --> src/util.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 |     wire::{EthernetAddress, HardwareAddress, IpAddress, Ipv4Address, Ipv6Address},
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Config`, `Context`, `Interface`, `IpAddress`, `IpCidr`, `IpEndpoint`, `IpListenEndpoint`, `Ipv4Address`, `SocketHandle`, `SocketSet`, `State`, `dhcpv4::Socket`, `phy::Device`, `self`, and `time::Instant`
[INFO] [stdout]   --> src/node/py_node.rs:6:13
[INFO] [stdout]    |
[INFO] [stdout]  6 |     iface::{Config, Context, Interface, SocketHandle, SocketSet},
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]  7 |     phy::Device,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]  8 |     socket::{
[INFO] [stdout]  9 |         dhcpv4::Socket,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 10 |         tcp::{self, State},
[INFO] [stdout]    |               ^^^^  ^^^^^
[INFO] [stdout] 11 |     },
[INFO] [stdout] 12 |     time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 13 |     wire::{IpAddress, IpCidr, IpEndpoint, IpListenEndpoint, Ipv4Address},
[INFO] [stdout]    |            ^^^^^^^^^  ^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Config`, `Context`, `Interface`, `IpAddress`, `IpCidr`, `Ipv4Address`, and `SocketSet`
[INFO] [stdout]   --> src/machine.rs:9:13
[INFO] [stdout]    |
[INFO] [stdout]  9 |     iface::{Config, Context, Interface, SocketSet},
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     wire::{EthernetAddress, IpAddress, IpCidr, Ipv4Address},
[INFO] [stdout]    |                             ^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell`, `collections::VecDeque`, `net::Ipv4Addr`, and `rc::Rc`
[INFO] [stdout]   --> src/machine.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     cell::RefCell,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     collections::VecDeque,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     net::Ipv4Addr,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 18 |     rc::Rc,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pyo3::exceptions::PyValueError`
[INFO] [stdout]  --> src/util.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pyo3::exceptions::PyValueError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HardwareAddress`
[INFO] [stdout]  --> src/util.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 |     wire::{EthernetAddress, HardwareAddress, IpAddress, Ipv4Address, Ipv6Address},
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pymethods`
[INFO] [stdout]  --> src/channel.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use pyo3::{pyclass, pymethods};
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `borrow::BorrowMut` and `str::FromStr`
[INFO] [stdout]  --> src/node/node.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{borrow::BorrowMut, str::FromStr};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::machine::MyCoolMachine`
[INFO] [stdout]  --> src/node/node.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::machine::MyCoolMachine;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dhcpv4::Socket`
[INFO] [stdout]  --> src/node/node.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |         dhcpv4::Socket,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Config`, `Context`, `Interface`, `IpAddress`, `IpCidr`, `IpEndpoint`, `IpListenEndpoint`, `Ipv4Address`, `SocketHandle`, `SocketSet`, `State`, `dhcpv4::Socket`, `phy::Device`, `self`, and `time::Instant`
[INFO] [stdout]   --> src/node/py_node.rs:6:13
[INFO] [stdout]    |
[INFO] [stdout]  6 |     iface::{Config, Context, Interface, SocketHandle, SocketSet},
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]  7 |     phy::Device,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]  8 |     socket::{
[INFO] [stdout]  9 |         dhcpv4::Socket,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 10 |         tcp::{self, State},
[INFO] [stdout]    |               ^^^^  ^^^^^
[INFO] [stdout] 11 |     },
[INFO] [stdout] 12 |     time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 13 |     wire::{IpAddress, IpCidr, IpEndpoint, IpListenEndpoint, Ipv4Address},
[INFO] [stdout]    |            ^^^^^^^^^  ^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Config`, `Context`, `Interface`, `IpAddress`, `IpCidr`, `Ipv4Address`, and `SocketSet`
[INFO] [stdout]   --> src/machine.rs:9:13
[INFO] [stdout]    |
[INFO] [stdout]  9 |     iface::{Config, Context, Interface, SocketSet},
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     wire::{EthernetAddress, IpAddress, IpCidr, Ipv4Address},
[INFO] [stdout]    |                             ^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell`, `collections::VecDeque`, `net::Ipv4Addr`, and `rc::Rc`
[INFO] [stdout]   --> src/machine.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     cell::RefCell,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     collections::VecDeque,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     net::Ipv4Addr,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 18 |     rc::Rc,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pyo3::exceptions::PyValueError`
[INFO] [stdout]  --> src/util.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pyo3::exceptions::PyValueError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HardwareAddress`
[INFO] [stdout]  --> src/util.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 |     wire::{EthernetAddress, HardwareAddress, IpAddress, Ipv4Address, Ipv6Address},
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `env_logger::Logger`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use env_logger::Logger;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::VecDeque` and `rc::Rc`
[INFO] [stdout]   --> src/main.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::{collections::VecDeque, rc::Rc};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::channel::Channel`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::channel::Channel;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeviceCapabilities`, `Device`, `Duration`, `Interface`, `IpCidr`, `IpEndpoint`, `IpListenEndpoint`, `Ipv6Address`, `Loopback`, `Medium`, `PacketMeta`, `PacketMetadata`, `RxToken`, `SocketSet`, `TxToken`, `UdpMetadata`, `self`, `self`, and `tcp`
[INFO] [stdout]   --> src/main.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |     iface::{self, Config, Interface, SocketSet},
[INFO] [stdout]    |             ^^^^          ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 24 |     phy::{
[INFO] [stdout] 25 |         Device, DeviceCapabilities, Loopback, Medium, PacketMeta, RxToken, TxToken,
[INFO] [stdout]    |         ^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^  ^^^^^^^^^^  ^^^^^^^  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |         tcp,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 29 |         udp::{self, PacketMetadata, UdpMetadata},
[INFO] [stdout]    |               ^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 30 |     },
[INFO] [stdout] 31 |     time::{Duration, Instant},
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 32 |     wire::{EthernetAddress, IpAddress, IpCidr, IpEndpoint, IpListenEndpoint, Ipv6Address},
[INFO] [stdout]    |                                        ^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pymethods`
[INFO] [stdout]  --> src/channel.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use pyo3::{pyclass, pymethods};
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Config`, `Context`, `Interface`, `IpAddress`, `IpCidr`, `Ipv4Address`, and `SocketSet`
[INFO] [stdout]   --> src/machine.rs:9:13
[INFO] [stdout]    |
[INFO] [stdout]  9 |     iface::{Config, Context, Interface, SocketSet},
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     wire::{EthernetAddress, IpAddress, IpCidr, Ipv4Address},
[INFO] [stdout]    |                             ^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell`, `collections::VecDeque`, `net::Ipv4Addr`, and `rc::Rc`
[INFO] [stdout]   --> src/machine.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     cell::RefCell,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     collections::VecDeque,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     net::Ipv4Addr,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 18 |     rc::Rc,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `borrow::BorrowMut` and `str::FromStr`
[INFO] [stdout]  --> src/node/node.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{borrow::BorrowMut, str::FromStr};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::machine::MyCoolMachine`
[INFO] [stdout]  --> src/node/node.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::machine::MyCoolMachine;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dhcpv4::Socket`
[INFO] [stdout]  --> src/node/node.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |         dhcpv4::Socket,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Config`, `Context`, `Interface`, `IpAddress`, `IpCidr`, `IpEndpoint`, `IpListenEndpoint`, `Ipv4Address`, `SocketHandle`, `SocketSet`, `State`, `dhcpv4::Socket`, `phy::Device`, `self`, and `time::Instant`
[INFO] [stdout]   --> src/node/py_node.rs:6:13
[INFO] [stdout]    |
[INFO] [stdout]  6 |     iface::{Config, Context, Interface, SocketHandle, SocketSet},
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]  7 |     phy::Device,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]  8 |     socket::{
[INFO] [stdout]  9 |         dhcpv4::Socket,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 10 |         tcp::{self, State},
[INFO] [stdout]    |               ^^^^  ^^^^^
[INFO] [stdout] 11 |     },
[INFO] [stdout] 12 |     time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 13 |     wire::{IpAddress, IpCidr, IpEndpoint, IpListenEndpoint, Ipv4Address},
[INFO] [stdout]    |            ^^^^^^^^^  ^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pyo3::exceptions::PyValueError`
[INFO] [stdout]  --> src/util.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pyo3::exceptions::PyValueError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HardwareAddress`
[INFO] [stdout]  --> src/util.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 |     wire::{EthernetAddress, HardwareAddress, IpAddress, Ipv4Address, Ipv6Address},
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `env_logger::Logger`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use env_logger::Logger;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::VecDeque` and `rc::Rc`
[INFO] [stdout]   --> src/main.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::{collections::VecDeque, rc::Rc};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::channel::Channel`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::channel::Channel;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeviceCapabilities`, `Device`, `Duration`, `Interface`, `IpCidr`, `IpEndpoint`, `IpListenEndpoint`, `Ipv6Address`, `Loopback`, `Medium`, `PacketMeta`, `PacketMetadata`, `RxToken`, `SocketSet`, `TxToken`, `UdpMetadata`, `self`, `self`, and `tcp`
[INFO] [stdout]   --> src/main.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |     iface::{self, Config, Interface, SocketSet},
[INFO] [stdout]    |             ^^^^          ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 24 |     phy::{
[INFO] [stdout] 25 |         Device, DeviceCapabilities, Loopback, Medium, PacketMeta, RxToken, TxToken,
[INFO] [stdout]    |         ^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^  ^^^^^^^^^^  ^^^^^^^  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |         tcp,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 29 |         udp::{self, PacketMetadata, UdpMetadata},
[INFO] [stdout]    |               ^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 30 |     },
[INFO] [stdout] 31 |     time::{Duration, Instant},
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 32 |     wire::{EthernetAddress, IpAddress, IpCidr, IpEndpoint, IpListenEndpoint, Ipv6Address},
[INFO] [stdout]    |                                        ^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pyo3::prelude`
[INFO] [stdout]  --> src/node/node.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pyo3::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp`
[INFO] [stdout]   --> src/machine.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn receive(&mut self, timestamp: Instant) -> Option<(Self::RxToken<'_>, Self::TxToken<'_>)> {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp`
[INFO] [stdout]   --> src/machine.rs:79:28
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn transmit(&mut self, timestamp: Instant) -> Option<Self::TxToken<'_>> {
[INFO] [stdout]    |                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/token.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn consume<R, F>(mut self, f: F) -> R
[INFO] [stdout]    |                      ----^^^^
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/connection.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut left = Arc::new(Mutex::new(Channel::new()));
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/connection.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let mut right = Arc::new(Mutex::new(Channel::new()));
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pyo3::prelude`
[INFO] [stdout]  --> src/node/node.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pyo3::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Connection` is more private than the item `MyCoolMachine::py_new`
[INFO] [stdout]   --> src/machine.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn py_new(addr: PyEthernetAddress, conn: Connection, side: &str) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `MyCoolMachine::py_new` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Connection` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/connection.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct Connection {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Channel` is more private than the item `MyCoolMachine::new`
[INFO] [stdout]   --> src/machine.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(addr: EthernetAddress, channel: Arc<Mutex<Channel>>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `MyCoolMachine::new` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Channel` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/channel.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Channel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]   --> src/machine.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct MyCoolMachine {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 25 |     addr: EthernetAddress,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MyCoolMachine` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `PyMyCoolMachine` should have a snake case name
[INFO] [stdout]   --> src/machine.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn PyMyCoolMachine(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `py_my_cool_machine`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `PyMyCoolMachine` should have a snake case name
[INFO] [stdout]   --> src/machine.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn PyMyCoolMachine(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `py_my_cool_machine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PySocketHandle, Infallible>
[INFO] [stdout]    --> src/node/py_node.rs:56:49
[INFO] [stdout]     |
[INFO] [stdout]  56 |             pub fn add_tcp_socket(&mut self) -> PySocketHandle {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | create_interface!(MyCoolMachineNode, MyCoolMachine);
[INFO] [stdout]     | --------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout]     = note: this error originates in the macro `create_interface` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyState, Infallible>
[INFO] [stdout]    --> src/node/py_node.rs:60:72
[INFO] [stdout]     |
[INFO] [stdout]  60 |             pub fn socket_status(&mut self, handle: PySocketHandle) -> PyState {
[INFO] [stdout]     |                                                                        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | create_interface!(MyCoolMachineNode, MyCoolMachine);
[INFO] [stdout]     | --------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `create_interface` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Nodes` should have a snake case name
[INFO] [stdout]    --> src/node/py_node.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn Nodes(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]     |        ^^^^^ help: convert the identifier to snake case: `nodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Nodes` should have a snake case name
[INFO] [stdout]    --> src/node/py_node.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn Nodes(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]     |        ^^^^^ help: convert the identifier to snake case: `nodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `PyConnection` should have a snake case name
[INFO] [stdout]   --> src/connection.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn PyConnection(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `py_connection`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `PyConnection` should have a snake case name
[INFO] [stdout]   --> src/connection.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn PyConnection(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `py_connection`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyInstant, Infallible>
[INFO] [stdout]   --> src/util.rs:54:17
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn now() -> Self {
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyIpAddress, Infallible>
[INFO] [stdout]   --> src/util.rs:70:46
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn v4(a0: u8, a1: u8, a2: u8, a3: u8) -> PyIpAddress {
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyIpAddress, Infallible>
[INFO] [stdout]   --> src/util.rs:75:86
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn v6(a0: u16, a1: u16, a2: u16, a3: u16, a4: u16, a5: u16, a6: u16, a7: u16) -> PyIpAddress {
[INFO] [stdout]    |                                                                                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp`
[INFO] [stdout]   --> src/machine.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn receive(&mut self, timestamp: Instant) -> Option<(Self::RxToken<'_>, Self::TxToken<'_>)> {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp`
[INFO] [stdout]   --> src/machine.rs:79:28
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn transmit(&mut self, timestamp: Instant) -> Option<Self::TxToken<'_>> {
[INFO] [stdout]    |                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `smol-play` (bin "smol-play") due to 5 previous errors; 30 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/token.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn consume<R, F>(mut self, f: F) -> R
[INFO] [stdout]    |                      ----^^^^
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/connection.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut left = Arc::new(Mutex::new(Channel::new()));
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/connection.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let mut right = Arc::new(Mutex::new(Channel::new()));
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Connection` is more private than the item `MyCoolMachine::py_new`
[INFO] [stdout]   --> src/machine.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn py_new(addr: PyEthernetAddress, conn: Connection, side: &str) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `MyCoolMachine::py_new` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Connection` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/connection.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct Connection {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Channel` is more private than the item `MyCoolMachine::new`
[INFO] [stdout]   --> src/machine.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(addr: EthernetAddress, channel: Arc<Mutex<Channel>>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `MyCoolMachine::new` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Channel` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/channel.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Channel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]   --> src/machine.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct MyCoolMachine {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 25 |     addr: EthernetAddress,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MyCoolMachine` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `PyMyCoolMachine` should have a snake case name
[INFO] [stdout]   --> src/machine.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn PyMyCoolMachine(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `py_my_cool_machine`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `PyMyCoolMachine` should have a snake case name
[INFO] [stdout]   --> src/machine.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn PyMyCoolMachine(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `py_my_cool_machine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PySocketHandle, Infallible>
[INFO] [stdout]    --> src/node/py_node.rs:56:49
[INFO] [stdout]     |
[INFO] [stdout]  56 |             pub fn add_tcp_socket(&mut self) -> PySocketHandle {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | create_interface!(MyCoolMachineNode, MyCoolMachine);
[INFO] [stdout]     | --------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout]     = note: this error originates in the macro `create_interface` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyState, Infallible>
[INFO] [stdout]    --> src/node/py_node.rs:60:72
[INFO] [stdout]     |
[INFO] [stdout]  60 |             pub fn socket_status(&mut self, handle: PySocketHandle) -> PyState {
[INFO] [stdout]     |                                                                        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | create_interface!(MyCoolMachineNode, MyCoolMachine);
[INFO] [stdout]     | --------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `create_interface` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Nodes` should have a snake case name
[INFO] [stdout]    --> src/node/py_node.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn Nodes(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]     |        ^^^^^ help: convert the identifier to snake case: `nodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Nodes` should have a snake case name
[INFO] [stdout]    --> src/node/py_node.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn Nodes(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]     |        ^^^^^ help: convert the identifier to snake case: `nodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `PyConnection` should have a snake case name
[INFO] [stdout]   --> src/connection.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn PyConnection(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `py_connection`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `PyConnection` should have a snake case name
[INFO] [stdout]   --> src/connection.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn PyConnection(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `py_connection`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyInstant, Infallible>
[INFO] [stdout]   --> src/util.rs:54:17
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn now() -> Self {
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyIpAddress, Infallible>
[INFO] [stdout]   --> src/util.rs:70:46
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn v4(a0: u8, a1: u8, a2: u8, a3: u8) -> PyIpAddress {
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyIpAddress, Infallible>
[INFO] [stdout]   --> src/util.rs:75:86
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn v6(a0: u16, a1: u16, a2: u16, a3: u16, a4: u16, a5: u16, a6: u16, a7: u16) -> PyIpAddress {
[INFO] [stdout]    |                                                                                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pyo3::prelude`
[INFO] [stdout]  --> src/node/node.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pyo3::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pyo3::prelude`
[INFO] [stdout]  --> src/node/node.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pyo3::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/connection.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut left = Arc::new(Mutex::new(Channel::new()));
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/connection.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let mut right = Arc::new(Mutex::new(Channel::new()));
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/connection.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut left = Arc::new(Mutex::new(Channel::new()));
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/connection.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let mut right = Arc::new(Mutex::new(Channel::new()));
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `smol-play` (bin "smol-play" test) due to 5 previous errors; 30 warnings emitted
[INFO] [stdout] warning: unused variable: `timestamp`
[INFO] [stdout]   --> src/machine.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn receive(&mut self, timestamp: Instant) -> Option<(Self::RxToken<'_>, Self::TxToken<'_>)> {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp`
[INFO] [stdout]   --> src/machine.rs:79:28
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn transmit(&mut self, timestamp: Instant) -> Option<Self::TxToken<'_>> {
[INFO] [stdout]    |                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp`
[INFO] [stdout]   --> src/machine.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn receive(&mut self, timestamp: Instant) -> Option<(Self::RxToken<'_>, Self::TxToken<'_>)> {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp`
[INFO] [stdout]   --> src/machine.rs:79:28
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn transmit(&mut self, timestamp: Instant) -> Option<Self::TxToken<'_>> {
[INFO] [stdout]    |                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/token.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn consume<R, F>(mut self, f: F) -> R
[INFO] [stdout]    |                      ----^^^^
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/token.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn consume<R, F>(mut self, f: F) -> R
[INFO] [stdout]    |                      ----^^^^
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Connection` is more private than the item `MyCoolMachine::py_new`
[INFO] [stdout]   --> src/machine.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn py_new(addr: PyEthernetAddress, conn: Connection, side: &str) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `MyCoolMachine::py_new` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Connection` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/connection.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct Connection {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Channel` is more private than the item `MyCoolMachine::new`
[INFO] [stdout]   --> src/machine.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(addr: EthernetAddress, channel: Arc<Mutex<Channel>>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `MyCoolMachine::new` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Channel` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/channel.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Channel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `double` is never used
[INFO] [stdout]  --> src/test_mod.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn double(x: usize) -> usize {
[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 `delay` and `context` are never used
[INFO] [stdout]   --> src/node/node.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | / impl<D> Node<D>
[INFO] [stdout] 40 | | where
[INFO] [stdout] 41 | |     D: Device,
[INFO] [stdout]    | |______________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |       pub fn delay(&mut self, sockets: &mut SocketSet) {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |       pub fn context(&mut self) -> &mut Context {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]   --> src/machine.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct MyCoolMachine {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 25 |     addr: EthernetAddress,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MyCoolMachine` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<usize, Infallible>
[INFO] [stdout]  --> src/test_mod.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn double(x: usize) -> usize {
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<usize, Infallible>
[INFO] [stdout]   --> src/test_mod.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn triple(x: usize) -> usize {
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `PyConnection` should have a snake case name
[INFO] [stdout]   --> src/connection.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn PyConnection(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `py_connection`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `PyConnection` should have a snake case name
[INFO] [stdout]   --> src/connection.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn PyConnection(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `py_connection`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PySocketHandle, Infallible>
[INFO] [stdout]    --> src/node/py_node.rs:56:49
[INFO] [stdout]     |
[INFO] [stdout]  56 |             pub fn add_tcp_socket(&mut self) -> PySocketHandle {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | create_interface!(MyCoolMachineNode, MyCoolMachine);
[INFO] [stdout]     | --------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `create_interface` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyState, Infallible>
[INFO] [stdout]    --> src/node/py_node.rs:60:72
[INFO] [stdout]     |
[INFO] [stdout]  60 |             pub fn socket_status(&mut self, handle: PySocketHandle) -> PyState {
[INFO] [stdout]     |                                                                        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | create_interface!(MyCoolMachineNode, MyCoolMachine);
[INFO] [stdout]     | --------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `create_interface` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Nodes` should have a snake case name
[INFO] [stdout]    --> src/node/py_node.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn Nodes(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]     |        ^^^^^ help: convert the identifier to snake case: `nodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Nodes` should have a snake case name
[INFO] [stdout]    --> src/node/py_node.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn Nodes(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]     |        ^^^^^ help: convert the identifier to snake case: `nodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `PyMyCoolMachine` should have a snake case name
[INFO] [stdout]   --> src/machine.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn PyMyCoolMachine(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `py_my_cool_machine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `PyMyCoolMachine` should have a snake case name
[INFO] [stdout]   --> src/machine.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn PyMyCoolMachine(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `py_my_cool_machine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyInstant, Infallible>
[INFO] [stdout]   --> src/util.rs:54:17
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn now() -> Self {
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyIpAddress, Infallible>
[INFO] [stdout]   --> src/util.rs:70:46
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn v4(a0: u8, a1: u8, a2: u8, a3: u8) -> PyIpAddress {
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyIpAddress, Infallible>
[INFO] [stdout]   --> src/util.rs:75:86
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn v6(a0: u16, a1: u16, a2: u16, a3: u16, a4: u16, a5: u16, a6: u16, a7: u16) -> PyIpAddress {
[INFO] [stdout]    |                                                                                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Connection` is more private than the item `MyCoolMachine::py_new`
[INFO] [stdout]   --> src/machine.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn py_new(addr: PyEthernetAddress, conn: Connection, side: &str) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `MyCoolMachine::py_new` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Connection` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/connection.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct Connection {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Channel` is more private than the item `MyCoolMachine::new`
[INFO] [stdout]   --> src/machine.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(addr: EthernetAddress, channel: Arc<Mutex<Channel>>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `MyCoolMachine::new` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Channel` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/channel.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Channel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `double` is never used
[INFO] [stdout]  --> src/test_mod.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn double(x: usize) -> usize {
[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 `delay` and `context` are never used
[INFO] [stdout]   --> src/node/node.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | / impl<D> Node<D>
[INFO] [stdout] 40 | | where
[INFO] [stdout] 41 | |     D: Device,
[INFO] [stdout]    | |______________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |       pub fn delay(&mut self, sockets: &mut SocketSet) {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |       pub fn context(&mut self) -> &mut Context {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]   --> src/machine.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct MyCoolMachine {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 25 |     addr: EthernetAddress,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MyCoolMachine` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<usize, Infallible>
[INFO] [stdout]  --> src/test_mod.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn double(x: usize) -> usize {
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<usize, Infallible>
[INFO] [stdout]   --> src/test_mod.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn triple(x: usize) -> usize {
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `PyConnection` should have a snake case name
[INFO] [stdout]   --> src/connection.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn PyConnection(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `py_connection`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `PyConnection` should have a snake case name
[INFO] [stdout]   --> src/connection.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn PyConnection(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `py_connection`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PySocketHandle, Infallible>
[INFO] [stdout]    --> src/node/py_node.rs:56:49
[INFO] [stdout]     |
[INFO] [stdout]  56 |             pub fn add_tcp_socket(&mut self) -> PySocketHandle {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | create_interface!(MyCoolMachineNode, MyCoolMachine);
[INFO] [stdout]     | --------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `create_interface` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyState, Infallible>
[INFO] [stdout]    --> src/node/py_node.rs:60:72
[INFO] [stdout]     |
[INFO] [stdout]  60 |             pub fn socket_status(&mut self, handle: PySocketHandle) -> PyState {
[INFO] [stdout]     |                                                                        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | create_interface!(MyCoolMachineNode, MyCoolMachine);
[INFO] [stdout]     | --------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `create_interface` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Nodes` should have a snake case name
[INFO] [stdout]    --> src/node/py_node.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn Nodes(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]     |        ^^^^^ help: convert the identifier to snake case: `nodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Nodes` should have a snake case name
[INFO] [stdout]    --> src/node/py_node.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn Nodes(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]     |        ^^^^^ help: convert the identifier to snake case: `nodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `PyMyCoolMachine` should have a snake case name
[INFO] [stdout]   --> src/machine.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn PyMyCoolMachine(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `py_my_cool_machine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `PyMyCoolMachine` should have a snake case name
[INFO] [stdout]   --> src/machine.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn PyMyCoolMachine(m: &Bound<'_, PyModule>) -> PyResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `py_my_cool_machine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyInstant, Infallible>
[INFO] [stdout]   --> src/util.rs:54:17
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn now() -> Self {
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyIpAddress, Infallible>
[INFO] [stdout]   --> src/util.rs:70:46
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn v4(a0: u8, a1: u8, a2: u8, a3: u8) -> PyIpAddress {
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PyIpAddress, Infallible>
[INFO] [stdout]   --> src/util.rs:75:86
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn v6(a0: u16, a1: u16, a2: u16, a3: u16, a4: u16, a5: u16, a6: u16, a7: u16) -> PyIpAddress {
[INFO] [stdout]    |                                                                                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `smol-play` (lib) due to 7 previous errors; 26 warnings emitted
[INFO] [stderr] error: could not compile `smol-play` (lib test) due to 7 previous errors; 26 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "d7affa13e1d6e8884d1c9d26d8ac1586897abb7d3a75c1575a1ee30dbd84e7d2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d7affa13e1d6e8884d1c9d26d8ac1586897abb7d3a75c1575a1ee30dbd84e7d2", kill_on_drop: false }`
[INFO] [stdout] d7affa13e1d6e8884d1c9d26d8ac1586897abb7d3a75c1575a1ee30dbd84e7d2
