[INFO] cloning repository https://github.com/HalfVoxel/brevduva
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/HalfVoxel/brevduva" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHalfVoxel%2Fbrevduva", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHalfVoxel%2Fbrevduva'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 11e5e83f114516066b374ca1efa811c6944900d9
[INFO] checking HalfVoxel/brevduva against try#0611f7de057c584b8771102fde7aed6c70c71d3b for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHalfVoxel%2Fbrevduva" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-2-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/HalfVoxel/brevduva
[INFO] finished tweaking git repo https://github.com/HalfVoxel/brevduva
[INFO] tweaked toml for git repo https://github.com/HalfVoxel/brevduva written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/HalfVoxel/brevduva on toolchain 0611f7de057c584b8771102fde7aed6c70c71d3b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/HalfVoxel/brevduva 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" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 991844cb80f6f700b9f2cb172da6c57a0e5130930b02687a013ac89938c81fd8
[INFO] running `Command { std: "docker" "start" "-a" "991844cb80f6f700b9f2cb172da6c57a0e5130930b02687a013ac89938c81fd8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "991844cb80f6f700b9f2cb172da6c57a0e5130930b02687a013ac89938c81fd8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "991844cb80f6f700b9f2cb172da6c57a0e5130930b02687a013ac89938c81fd8", kill_on_drop: false }`
[INFO] [stdout] 991844cb80f6f700b9f2cb172da6c57a0e5130930b02687a013ac89938c81fd8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9079c9aa428676a0052d31d5e382e83274eeff56fdd8b4b5ab07f995eb3a4cf5
[INFO] running `Command { std: "docker" "start" "-a" "9079c9aa428676a0052d31d5e382e83274eeff56fdd8b4b5ab07f995eb3a4cf5", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]    Compiling embedded-io-async v0.6.1
[INFO] [stderr]     Checking embedded-io v0.6.1
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling brevduva v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]     Checking hash32 v0.3.1
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]     Checking cobs v0.3.0
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling enumset_derive v0.14.0
[INFO] [stderr]     Checking postcard v1.1.3
[INFO] [stderr]     Checking enumset v1.1.10
[INFO] [stderr]     Checking embedded-svc v0.28.1
[INFO] [stdout] error: struct `SyncStorage` is never constructed
[INFO] [stdout]   --> src/lib.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct SyncStorage {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]    = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `SyncedContainer` is never constructed
[INFO] [stdout]   --> src/lib.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct SyncedContainer<T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `META_TOPIC` is never used
[INFO] [stdout]   --> src/lib.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const META_TOPIC: &str = "sync/meta";
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `client_id` is never read
[INFO] [stdout]   --> src/lib.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct SyncStorageInner {
[INFO] [stdout]    |        ---------------- field in this struct
[INFO] [stdout] 36 |     client_id: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `on_message` and `serialize` are never used
[INFO] [stdout]   --> src/lib.rs:44:14
[INFO] [stdout]    |
[INFO] [stdout] 42 | trait Container: Send + Sync + 'static {
[INFO] [stdout]    |       --------- methods in this trait
[INFO] [stdout] 43 |     fn topic(&self) -> &str;
[INFO] [stdout] 44 |     async fn on_message(&self, topic: &str, payload: &[u8]) -> Result<(), BrevduvaError>;
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 45 |     fn serialize(&self) -> Vec<u8>;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `container_id` is never read
[INFO] [stdout]   --> src/lib.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     SyncContainer {
[INFO] [stdout]    |     ------------- field in this variant
[INFO] [stdout] 55 |         container_id: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueueMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `container_id`, `data`, and `qos` are never read
[INFO] [stdout]   --> src/lib.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     PublishOnChannel {
[INFO] [stdout]    |     ---------------- fields in this variant
[INFO] [stdout] 58 |         container_id: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 59 |         data: Vec<u8>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 60 |         qos: QoS,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueueMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `container_id` is never read
[INFO] [stdout]   --> src/lib.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Subscribe {
[INFO] [stdout]    |     --------- field in this variant
[INFO] [stdout] 63 |         container_id: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueueMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetaMessage` is never used
[INFO] [stdout]   --> src/lib.rs:68:6
[INFO] [stdout]    |
[INFO] [stdout] 68 | enum MetaMessage {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `format` is never read
[INFO] [stdout]   --> src/lib.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct SyncedContainer<T> {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 92 |     format: crate::channel::SerializationFormat,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `publish_online_status` and `start` are never used
[INFO] [stdout]    --> src/lib.rs:450:14
[INFO] [stdout]     |
[INFO] [stdout] 343 | impl SyncStorage {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 450 |     async fn publish_online_status(&self, online_status_topic: String) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 575 |     async fn start<C: asynch::Client + asynch::Publish + Send, Conn: asynch::Connection + Send>(
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unblock` is never used
[INFO] [stdout]   --> src/blocker.rs:38:18
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Blocker {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub async fn unblock(&self) {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Channel` is never constructed
[INFO] [stdout]   --> src/channel.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Channel<T: 'static> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `channel` is never read
[INFO] [stdout]   --> src/channel.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Channel<T: 'static> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     channel: tokio::sync::mpsc::Sender<ChannelMessage<T>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_from_slice` is never used
[INFO] [stdout]    --> src/channel.rs:108:15
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub(crate) fn deserialize_from_slice<T: DeserializeOwned>(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_slice` is never used
[INFO] [stdout]   --> src/raw_deserializer.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn from_slice<T: DeserializeOwned>(input: &[u8]) -> Result<T, RawError> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 |     pub fn get(&self) -> std::sync::MutexGuard<Option<T>> {
[INFO] [stdout]     |                ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 170 |     pub fn get(&self) -> std::sync::MutexGuard<'_, Option<T>> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `brevduva` (lib test) due to 3 previous errors; 14 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: struct `SyncStorage` is never constructed
[INFO] [stdout]   --> src/lib.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct SyncStorage {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]    = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `SyncedContainer` is never constructed
[INFO] [stdout]   --> src/lib.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct SyncedContainer<T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `META_TOPIC` is never used
[INFO] [stdout]   --> src/lib.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const META_TOPIC: &str = "sync/meta";
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `client_id` is never read
[INFO] [stdout]   --> src/lib.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct SyncStorageInner {
[INFO] [stdout]    |        ---------------- field in this struct
[INFO] [stdout] 36 |     client_id: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `on_message` and `serialize` are never used
[INFO] [stdout]   --> src/lib.rs:44:14
[INFO] [stdout]    |
[INFO] [stdout] 42 | trait Container: Send + Sync + 'static {
[INFO] [stdout]    |       --------- methods in this trait
[INFO] [stdout] 43 |     fn topic(&self) -> &str;
[INFO] [stdout] 44 |     async fn on_message(&self, topic: &str, payload: &[u8]) -> Result<(), BrevduvaError>;
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 45 |     fn serialize(&self) -> Vec<u8>;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `container_id` is never read
[INFO] [stdout]   --> src/lib.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     SyncContainer {
[INFO] [stdout]    |     ------------- field in this variant
[INFO] [stdout] 55 |         container_id: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueueMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `container_id`, `data`, and `qos` are never read
[INFO] [stdout]   --> src/lib.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     PublishOnChannel {
[INFO] [stdout]    |     ---------------- fields in this variant
[INFO] [stdout] 58 |         container_id: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 59 |         data: Vec<u8>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 60 |         qos: QoS,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueueMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `container_id` is never read
[INFO] [stdout]   --> src/lib.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Subscribe {
[INFO] [stdout]    |     --------- field in this variant
[INFO] [stdout] 63 |         container_id: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueueMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetaMessage` is never used
[INFO] [stdout]   --> src/lib.rs:68:6
[INFO] [stdout]    |
[INFO] [stdout] 68 | enum MetaMessage {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `format` is never read
[INFO] [stdout]   --> src/lib.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct SyncedContainer<T> {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 92 |     format: crate::channel::SerializationFormat,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matches_topic` is never used
[INFO] [stdout]    --> src/lib.rs:290:4
[INFO] [stdout]     |
[INFO] [stdout] 290 | fn matches_topic(topic_filter: &str, topic: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `publish_online_status` and `start` are never used
[INFO] [stdout]    --> src/lib.rs:450:14
[INFO] [stdout]     |
[INFO] [stdout] 343 | impl SyncStorage {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 450 |     async fn publish_online_status(&self, online_status_topic: String) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 575 |     async fn start<C: asynch::Client + asynch::Publish + Send, Conn: asynch::Connection + Send>(
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unblock` is never used
[INFO] [stdout]   --> src/blocker.rs:38:18
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Blocker {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub async fn unblock(&self) {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Channel` is never constructed
[INFO] [stdout]   --> src/channel.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Channel<T: 'static> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `channel` is never read
[INFO] [stdout]   --> src/channel.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Channel<T: 'static> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     channel: tokio::sync::mpsc::Sender<ChannelMessage<T>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_from_slice` is never used
[INFO] [stdout]    --> src/channel.rs:108:15
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub(crate) fn deserialize_from_slice<T: DeserializeOwned>(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_slice` is never used
[INFO] [stdout]   --> src/raw_deserializer.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn from_slice<T: DeserializeOwned>(input: &[u8]) -> Result<T, RawError> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 |     pub fn get(&self) -> std::sync::MutexGuard<Option<T>> {
[INFO] [stdout]     |                ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 170 |     pub fn get(&self) -> std::sync::MutexGuard<'_, Option<T>> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `brevduva` (lib) due to 3 previous errors; 15 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "9079c9aa428676a0052d31d5e382e83274eeff56fdd8b4b5ab07f995eb3a4cf5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9079c9aa428676a0052d31d5e382e83274eeff56fdd8b4b5ab07f995eb3a4cf5", kill_on_drop: false }`
[INFO] [stdout] 9079c9aa428676a0052d31d5e382e83274eeff56fdd8b4b5ab07f995eb3a4cf5
