[INFO] cloning repository https://github.com/TheEmpty/mighty_mule_gate [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TheEmpty/mighty_mule_gate" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheEmpty%2Fmighty_mule_gate", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheEmpty%2Fmighty_mule_gate'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] dc7e96f8e6a4fd37259f25441c736283437f55e7 [INFO] checking TheEmpty/mighty_mule_gate against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheEmpty%2Fmighty_mule_gate" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/TheEmpty/mighty_mule_gate [INFO] finished tweaking git repo https://github.com/TheEmpty/mighty_mule_gate [INFO] tweaked toml for git repo https://github.com/TheEmpty/mighty_mule_gate written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/TheEmpty/mighty_mule_gate on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/TheEmpty/mighty_mule_gate 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 17 packages to latest compatible versions [INFO] [stderr] Adding aho-corasick v0.7.15 (available: v0.7.20) [INFO] [stderr] Adding atty v0.2.14 [INFO] [stderr] Adding cfg-if v1.0.4 [INFO] [stderr] Adding env_logger v0.7.1 [INFO] [stderr] Adding getrandom v0.2.16 [INFO] [stderr] Adding humantime v1.3.0 [INFO] [stderr] Updating libc v0.2.70 -> v0.2.177 [INFO] [stderr] Adding pretty_env_logger v0.4.0 (available: v0.5.0) [INFO] [stderr] Adding quick-error v1.2.3 [INFO] [stderr] Adding regex v1.4.6 (available: v1.12.2) [INFO] [stderr] Adding regex-syntax v0.6.29 [INFO] [stderr] Adding termcolor v1.4.1 [INFO] [stderr] Adding uuid v0.8.2 (available: v1.18.1) [INFO] [stderr] Adding wasi v0.11.1+wasi-snapshot-preview1 [INFO] [stderr] Adding winapi-util v0.1.11 [INFO] [stderr] Adding windows-link v0.2.1 [INFO] [stderr] Adding windows-sys v0.61.2 [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded pin-project-internal v0.4.17 [INFO] [stderr] Downloaded pin-project-lite v0.1.5 [INFO] [stderr] Downloaded arc-swap v0.4.6 [INFO] [stderr] Downloaded proc-macro2 v1.0.15 [INFO] [stderr] Downloaded hermit-abi v0.1.13 [INFO] [stderr] Downloaded miow v0.3.4 [INFO] [stderr] Downloaded pin-project v0.4.17 [INFO] [stderr] Downloaded hyper v0.13.5 [INFO] [stderr] Downloaded syn v1.0.23 [INFO] [stderr] Downloaded nix v0.11.1 [INFO] [stderr] Downloaded gpio-cdev v0.2.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0943957deb52707c07c84f09cc28e58f6d4601b41f396c01ee6e9b30c55185ce [INFO] running `Command { std: "docker" "start" "-a" "0943957deb52707c07c84f09cc28e58f6d4601b41f396c01ee6e9b30c55185ce", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0943957deb52707c07c84f09cc28e58f6d4601b41f396c01ee6e9b30c55185ce", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0943957deb52707c07c84f09cc28e58f6d4601b41f396c01ee6e9b30c55185ce", kill_on_drop: false }` [INFO] [stdout] 0943957deb52707c07c84f09cc28e58f6d4601b41f396c01ee6e9b30c55185ce [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2870c6f2d99b3065bf7b8012e0e96e20a9f77fa569da69f721bd9731e0254ab5 [INFO] running `Command { std: "docker" "start" "-a" "2870c6f2d99b3065bf7b8012e0e96e20a9f77fa569da69f721bd9731e0254ab5", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Compiling proc-macro2 v1.0.15 [INFO] [stderr] Compiling syn v1.0.23 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Checking futures-core v0.3.5 [INFO] [stderr] Checking bytes v0.5.4 [INFO] [stderr] Checking arc-swap v0.4.6 [INFO] [stderr] Checking itoa v0.4.5 [INFO] [stderr] Checking gimli v0.21.0 [INFO] [stderr] Compiling serde v1.0.110 [INFO] [stderr] Compiling indexmap v1.3.2 [INFO] [stderr] Checking pin-project-lite v0.1.5 [INFO] [stderr] Compiling error-chain v0.12.2 [INFO] [stderr] Compiling nix v0.11.1 [INFO] [stderr] Checking aho-corasick v0.7.15 [INFO] [stderr] Checking smallvec v1.4.0 [INFO] [stderr] Checking futures-task v0.3.5 [INFO] [stderr] Checking object v0.19.0 [INFO] [stderr] Compiling ryu v1.0.4 [INFO] [stderr] Checking cfg-if v1.0.4 [INFO] [stderr] Checking unicode-normalization v0.1.12 [INFO] [stderr] Checking futures-channel v0.3.5 [INFO] [stderr] Checking tower-service v0.3.0 [INFO] [stderr] Checking want v0.3.0 [INFO] [stderr] Checking http v0.2.1 [INFO] [stderr] Checking regex v1.4.6 [INFO] [stderr] Checking idna v0.2.0 [INFO] [stderr] Compiling quote v1.0.6 [INFO] [stderr] Checking url v2.1.1 [INFO] [stderr] Checking net2 v0.2.34 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking signal-hook-registry v1.2.0 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking time v0.1.43 [INFO] [stderr] Checking env_logger v0.7.1 [INFO] [stderr] Checking mio v0.6.22 [INFO] [stderr] Checking pretty_env_logger v0.4.0 [INFO] [stderr] Checking addr2line v0.12.1 [INFO] [stderr] Checking backtrace v0.3.48 [INFO] [stderr] Checking http-body v0.3.1 [INFO] [stderr] Checking mio-uds v0.6.8 [INFO] [stderr] Checking gpio-cdev v0.2.0 [INFO] [stderr] Compiling tokio-macros v0.2.5 [INFO] [stderr] Compiling pin-project-internal v0.4.17 [INFO] [stderr] Compiling serde_derive v1.0.110 [INFO] [stderr] Checking tokio v0.2.21 [INFO] [stderr] Checking pin-project v0.4.17 [INFO] [stderr] Checking futures-util v0.3.5 [INFO] [stderr] Checking tokio-util v0.3.1 [INFO] [stderr] Checking h2 v0.2.5 [INFO] [stderr] Checking hyper v0.13.5 [INFO] [stderr] Checking serde_json v1.0.53 [INFO] [stderr] Checking uuid v0.8.2 [INFO] [stderr] Checking mighty_mule_gate v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/main.rs:26:17 [INFO] [stdout] | [INFO] [stdout] 26 | server::GATE.as_mut().unwrap().sync(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/gate.rs:8:41 [INFO] [stdout] | [INFO] [stdout] 8 | #[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_State` [INFO] [stdout] 9 | pub enum State { [INFO] [stdout] | ----- `State` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/gate.rs:8:52 [INFO] [stdout] | [INFO] [stdout] 8 | #[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_State` [INFO] [stdout] 9 | pub enum State { [INFO] [stdout] | ----- `State` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/gate.rs:34:17 [INFO] [stdout] | [INFO] [stdout] 34 | #[derive(Clone, Serialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_LockStateLock` [INFO] [stdout] 35 | pub struct LockStateLock { [INFO] [stdout] | ------------- `LockStateLock` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/gate.rs:41:10 [INFO] [stdout] | [INFO] [stdout] 41 | #[derive(Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_GateConfiguration` [INFO] [stdout] 42 | pub struct GateConfiguration { [INFO] [stdout] | ----------------- `GateConfiguration` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gate.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | pin.set_value(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 61 | let _ = pin.set_value(1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gate.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | pin.set_value(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 63 | let _ = pin.set_value(0); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gate.rs:188:13 [INFO] [stdout] | [INFO] [stdout] 188 | self.gpio_exit_relay.set_value(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 188 | let _ = self.gpio_exit_relay.set_value(0); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gate.rs:221:13 [INFO] [stdout] | [INFO] [stdout] 221 | self.gpio_exit_relay.set_value(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 221 | let _ = self.gpio_exit_relay.set_value(1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/service_configuration.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ServiceConfiguration` [INFO] [stdout] 8 | pub struct ServiceConfiguration { [INFO] [stdout] | -------------------- `ServiceConfiguration` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/server.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | #[derive(Serialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_GateAPIResponse` [INFO] [stdout] 14 | struct GateAPIResponse { [INFO] [stdout] | --------------- `GateAPIResponse` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/server.rs:55:20 [INFO] [stdout] | [INFO] [stdout] 55 | let gate = GATE.as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/server.rs:87:29 [INFO] [stdout] | [INFO] [stdout] 87 | state_changed = GATE.as_mut().unwrap().change_state(desired_state.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/server.rs:115:26 [INFO] [stdout] | [INFO] [stdout] 115 | lock_added = GATE.as_mut().unwrap().hold_state(desired_state.unwrap(), ttl); [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/server.rs:139:18 [INFO] [stdout] | [INFO] [stdout] 139 | result = GATE.as_mut().unwrap().delete_lock(id); [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/main.rs:26:17 [INFO] [stdout] | [INFO] [stdout] 26 | server::GATE.as_mut().unwrap().sync(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/gate.rs:8:41 [INFO] [stdout] | [INFO] [stdout] 8 | #[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_State` [INFO] [stdout] 9 | pub enum State { [INFO] [stdout] | ----- `State` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/gate.rs:8:52 [INFO] [stdout] | [INFO] [stdout] 8 | #[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_State` [INFO] [stdout] 9 | pub enum State { [INFO] [stdout] | ----- `State` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/gate.rs:34:17 [INFO] [stdout] | [INFO] [stdout] 34 | #[derive(Clone, Serialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_LockStateLock` [INFO] [stdout] 35 | pub struct LockStateLock { [INFO] [stdout] | ------------- `LockStateLock` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/gate.rs:41:10 [INFO] [stdout] | [INFO] [stdout] 41 | #[derive(Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_GateConfiguration` [INFO] [stdout] 42 | pub struct GateConfiguration { [INFO] [stdout] | ----------------- `GateConfiguration` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gate.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | pin.set_value(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 61 | let _ = pin.set_value(1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gate.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | pin.set_value(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 63 | let _ = pin.set_value(0); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gate.rs:188:13 [INFO] [stdout] | [INFO] [stdout] 188 | self.gpio_exit_relay.set_value(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 188 | let _ = self.gpio_exit_relay.set_value(0); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gate.rs:221:13 [INFO] [stdout] | [INFO] [stdout] 221 | self.gpio_exit_relay.set_value(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 221 | let _ = self.gpio_exit_relay.set_value(1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/service_configuration.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ServiceConfiguration` [INFO] [stdout] 8 | pub struct ServiceConfiguration { [INFO] [stdout] | -------------------- `ServiceConfiguration` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/server.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | #[derive(Serialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_GateAPIResponse` [INFO] [stdout] 14 | struct GateAPIResponse { [INFO] [stdout] | --------------- `GateAPIResponse` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/server.rs:55:20 [INFO] [stdout] | [INFO] [stdout] 55 | let gate = GATE.as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/server.rs:87:29 [INFO] [stdout] | [INFO] [stdout] 87 | state_changed = GATE.as_mut().unwrap().change_state(desired_state.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/server.rs:115:26 [INFO] [stdout] | [INFO] [stdout] 115 | lock_added = GATE.as_mut().unwrap().hold_state(desired_state.unwrap(), ttl); [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/server.rs:139:18 [INFO] [stdout] | [INFO] [stdout] 139 | result = GATE.as_mut().unwrap().delete_lock(id); [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.95s [INFO] running `Command { std: "docker" "inspect" "2870c6f2d99b3065bf7b8012e0e96e20a9f77fa569da69f721bd9731e0254ab5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2870c6f2d99b3065bf7b8012e0e96e20a9f77fa569da69f721bd9731e0254ab5", kill_on_drop: false }` [INFO] [stdout] 2870c6f2d99b3065bf7b8012e0e96e20a9f77fa569da69f721bd9731e0254ab5