[INFO] cloning repository https://github.com/Ali-Usama/cooking-recipe-p2p
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ali-Usama/cooking-recipe-p2p" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAli-Usama%2Fcooking-recipe-p2p", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAli-Usama%2Fcooking-recipe-p2p'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 08f541a35fbd28819e44047cc8ef257f1071c4ad
[INFO] checking Ali-Usama/cooking-recipe-p2p against master#46424fb5054f211ec836c5c03159f92e46bb35ac for pr-139042
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAli-Usama%2Fcooking-recipe-p2p" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Ali-Usama/cooking-recipe-p2p on toolchain 46424fb5054f211ec836c5c03159f92e46bb35ac
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+46424fb5054f211ec836c5c03159f92e46bb35ac" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Ali-Usama/cooking-recipe-p2p
[INFO] finished tweaking git repo https://github.com/Ali-Usama/cooking-recipe-p2p
[INFO] tweaked toml for git repo https://github.com/Ali-Usama/cooking-recipe-p2p written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/Ali-Usama/cooking-recipe-p2p 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" "+46424fb5054f211ec836c5c03159f92e46bb35ac" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded data-encoding-macro-internal v0.1.11
[INFO] [stderr]   Downloaded data-encoding-macro v0.1.13
[INFO] [stderr]   Downloaded multihash v0.19.0
[INFO] [stderr]   Downloaded asynchronous-codec v0.6.1
[INFO] [stderr]   Downloaded proc-macro-warning v0.4.1
[INFO] [stderr]   Downloaded quick-protobuf-codec v0.2.0
[INFO] [stderr]   Downloaded rw-stream-sink v0.4.0
[INFO] [stderr]   Downloaded libp2p-yamux v0.44.0
[INFO] [stderr]   Downloaded if-watch v3.0.1
[INFO] [stderr]   Downloaded libp2p-connection-limits v0.2.0
[INFO] [stderr]   Downloaded libp2p-dns v0.40.0
[INFO] [stderr]   Downloaded async-std-resolver v0.22.0
[INFO] [stderr]   Downloaded libp2p-swarm-derive v0.33.0
[INFO] [stderr]   Downloaded async-net v1.7.0
[INFO] [stderr]   Downloaded ctr v0.7.0
[INFO] [stderr]   Downloaded libp2p-allow-block-list v0.2.0
[INFO] [stderr]   Downloaded chacha20 v0.8.2
[INFO] [stderr]   Downloaded trust-dns-resolver v0.22.0
[INFO] [stderr]   Downloaded netlink-packet-route v0.12.0
[INFO] [stderr]   Downloaded libm v0.1.4
[INFO] [stderr]   Downloaded quick-protobuf v0.8.1
[INFO] [stderr]   Downloaded aes-gcm v0.9.2
[INFO] [stderr]   Downloaded serde_json v1.0.97
[INFO] [stderr]   Downloaded packed_simd_2 v0.3.8
[INFO] [stderr]   Downloaded libp2p-swarm v0.43.0
[INFO] [stderr]   Downloaded serde_derive v1.0.164
[INFO] [stderr]   Downloaded chacha20poly1305 v0.9.1
[INFO] [stderr]   Downloaded trust-dns-proto v0.22.0
[INFO] [stderr]   Downloaded smol v1.3.0
[INFO] [stderr]   Downloaded libp2p-core v0.40.0
[INFO] [stderr]   Downloaded yamux v0.10.2
[INFO] [stderr]   Downloaded libp2p-identity v0.2.0
[INFO] [stderr]   Downloaded platforms v3.0.2
[INFO] [stderr]   Downloaded rtnetlink v0.10.1
[INFO] [stderr]   Downloaded libp2p-tcp v0.40.0
[INFO] [stderr]   Downloaded cpufeatures v0.2.8
[INFO] [stderr]   Downloaded fiat-crypto v0.1.20
[INFO] [stderr]   Downloaded libp2p v0.52.0
[INFO] [stderr]   Downloaded netlink-packet-utils v0.5.2
[INFO] [stderr]   Downloaded netlink-proto v0.10.0
[INFO] [stderr]   Downloaded libp2p-floodsub v0.43.0
[INFO] [stderr]   Downloaded curve25519-dalek v4.0.0-rc.1
[INFO] [stderr]   Downloaded enum-as-inner v0.5.1
[INFO] [stderr]   Downloaded libp2p-mdns v0.44.0
[INFO] [stderr]   Downloaded libp2p-noise v0.43.0
[INFO] [stderr]   Downloaded if-addrs v0.7.0
[INFO] [stderr]   Downloaded snow v0.9.2
[INFO] [stderr]   Downloaded windows_aarch64_msvc v0.34.0
[INFO] [stderr]   Downloaded windows_x86_64_msvc v0.34.0
[INFO] [stderr]   Downloaded netlink-packet-core v0.4.2
[INFO] [stderr]   Downloaded netlink-sys v0.8.5
[INFO] [stderr]   Downloaded multistream-select v0.13.0
[INFO] [stderr]   Downloaded windows_x86_64_gnu v0.34.0
[INFO] [stderr]   Downloaded windows_i686_msvc v0.34.0
[INFO] [stderr]   Downloaded multiaddr v0.18.0
[INFO] [stderr]   Downloaded windows_i686_gnu v0.34.0
[INFO] [stderr]   Downloaded value-bag v1.4.0
[INFO] [stderr]   Downloaded windows v0.34.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:4b26683ee3c49f365255c425c23003cbf4366de097804722c29c5bbbee3624d2" "/opt/rustwide/cargo-home/bin/cargo" "+46424fb5054f211ec836c5c03159f92e46bb35ac" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5be8e64cf0583d34a52cc304015ca8c8cac39c4da154eea3e98ec49912ceab17
[INFO] running `Command { std: "docker" "start" "-a" "5be8e64cf0583d34a52cc304015ca8c8cac39c4da154eea3e98ec49912ceab17", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5be8e64cf0583d34a52cc304015ca8c8cac39c4da154eea3e98ec49912ceab17", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5be8e64cf0583d34a52cc304015ca8c8cac39c4da154eea3e98ec49912ceab17", kill_on_drop: false }`
[INFO] [stdout] 5be8e64cf0583d34a52cc304015ca8c8cac39c4da154eea3e98ec49912ceab17
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:4b26683ee3c49f365255c425c23003cbf4366de097804722c29c5bbbee3624d2" "/opt/rustwide/cargo-home/bin/cargo" "+46424fb5054f211ec836c5c03159f92e46bb35ac" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 675282fcfc37a9d8d556557f44752d8d3ddaa9452cb4562cc92fc7451606bb5b
[INFO] running `Command { std: "docker" "start" "-a" "675282fcfc37a9d8d556557f44752d8d3ddaa9452cb4562cc92fc7451606bb5b", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.60
[INFO] [stderr]    Compiling unicode-ident v1.0.9
[INFO] [stderr]    Compiling quote v1.0.28
[INFO] [stderr]    Compiling libc v0.2.146
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]     Checking pin-project-lite v0.2.9
[INFO] [stderr]     Checking futures-io v0.3.28
[INFO] [stderr]     Checking value-bag v1.4.0
[INFO] [stderr]    Compiling slab v0.4.8
[INFO] [stderr]    Compiling typenum v1.16.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking bytes v1.4.0
[INFO] [stderr]    Compiling thiserror v1.0.40
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]    Compiling rustix v0.37.20
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]     Checking concurrent-queue v2.2.0
[INFO] [stderr]     Checking parking v2.1.0
[INFO] [stderr]     Checking waker-fn v1.1.0
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]     Checking tinyvec v1.6.0
[INFO] [stderr]     Checking log v0.4.19
[INFO] [stderr]     Checking async-lock v2.7.0
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]    Compiling serde v1.0.164
[INFO] [stderr]     Checking subtle v2.5.0
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]     Checking cpufeatures v0.2.8
[INFO] [stderr]     Checking unicode-bidi v0.3.13
[INFO] [stderr]     Checking smallvec v1.10.0
[INFO] [stderr]    Compiling tokio v1.28.2
[INFO] [stderr]     Checking data-encoding v2.4.0
[INFO] [stderr]     Checking percent-encoding v2.3.0
[INFO] [stderr]     Checking quick-protobuf v0.8.1
[INFO] [stderr]     Checking form_urlencoded v1.2.0
[INFO] [stderr]     Checking async-task v4.4.0
[INFO] [stderr]     Checking lock_api v0.4.10
[INFO] [stderr]     Checking async-channel v1.8.0
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking core2 v0.4.0
[INFO] [stderr]     Checking bs58 v0.5.0
[INFO] [stderr]     Checking atomic-waker v1.1.1
[INFO] [stderr]     Checking base-x v0.2.11
[INFO] [stderr]    Compiling anyhow v1.0.71
[INFO] [stderr]     Checking arrayref v0.3.7
[INFO] [stderr]    Compiling paste v1.0.12
[INFO] [stderr]     Checking futures-timer v3.0.2
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking either v1.8.1
[INFO] [stderr]    Compiling proc-macro-warning v0.4.1
[INFO] [stderr]    Compiling semver v1.0.17
[INFO] [stderr]     Checking kv-log-macro v1.0.7
[INFO] [stderr]    Compiling cc v1.0.79
[INFO] [stderr]    Compiling async-trait v0.1.68
[INFO] [stderr]     Checking ipnet v2.7.2
[INFO] [stderr]     Checking tracing-core v0.1.31
[INFO] [stderr]     Checking matches v0.1.10
[INFO] [stderr]     Checking aho-corasick v1.0.2
[INFO] [stderr]     Checking regex-syntax v0.7.2
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]     Checking termcolor v1.2.0
[INFO] [stderr]    Compiling serde_json v1.0.97
[INFO] [stderr]    Compiling syn v2.0.18
[INFO] [stderr]     Checking ryu v1.0.13
[INFO] [stderr]     Checking itoa v1.0.6
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]     Checking unicode-normalization v0.1.22
[INFO] [stderr]     Checking async-executor v1.5.1
[INFO] [stderr]     Checking blocking v1.3.1
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling snow v0.9.2
[INFO] [stderr]     Checking idna v0.4.0
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking num_cpus v1.15.0
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking socket2 v0.4.9
[INFO] [stderr]     Checking mio v0.8.8
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]     Checking parking_lot_core v0.9.8
[INFO] [stderr]     Checking url v2.4.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking socket2 v0.5.3
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking regex v1.8.4
[INFO] [stderr]     Checking sha2 v0.10.7
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking cuckoofilter v0.5.0
[INFO] [stderr]     Checking is-terminal v0.4.7
[INFO] [stderr]     Checking env_logger v0.10.0
[INFO] [stderr]     Checking pretty_env_logger v0.5.0
[INFO] [stderr]     Checking async-global-executor v2.3.1
[INFO] [stderr]    Compiling data-encoding-macro-internal v0.1.11
[INFO] [stderr]    Compiling async-attributes v1.1.2
[INFO] [stderr]    Compiling enum-as-inner v0.5.1
[INFO] [stderr]     Checking async-std v1.12.0
[INFO] [stderr]     Checking data-encoding-macro v0.1.13
[INFO] [stderr]     Checking multibase v0.9.1
[INFO] [stderr]    Compiling futures-macro v0.3.28
[INFO] [stderr]    Compiling thiserror-impl v1.0.40
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling serde_derive v1.0.164
[INFO] [stderr]    Compiling tokio-macros v2.1.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.0
[INFO] [stderr]    Compiling libp2p-swarm-derive v0.33.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.26
[INFO] [stderr]     Checking zeroize v1.6.0
[INFO] [stderr]     Checking curve25519-dalek v3.2.0
[INFO] [stderr]     Checking futures-util v0.3.28
[INFO] [stderr]     Checking netlink-packet-utils v0.5.2
[INFO] [stderr]     Checking tracing v0.1.37
[INFO] [stderr]     Checking netlink-packet-core v0.4.2
[INFO] [stderr]     Checking pin-project v1.1.0
[INFO] [stderr]     Checking netlink-packet-route v0.12.0
[INFO] [stderr]     Checking x25519-dalek v1.1.1
[INFO] [stderr]     Checking futures-executor v0.3.28
[INFO] [stderr]     Checking asynchronous-codec v0.6.1
[INFO] [stderr]     Checking unsigned-varint v0.7.1
[INFO] [stderr]     Checking futures v0.3.28
[INFO] [stderr]     Checking rw-stream-sink v0.4.0
[INFO] [stderr]     Checking yamux v0.10.2
[INFO] [stderr]     Checking multihash v0.19.0
[INFO] [stderr]     Checking multistream-select v0.13.0
[INFO] [stderr]     Checking quick-protobuf-codec v0.2.0
[INFO] [stderr]     Checking netlink-sys v0.8.5
[INFO] [stderr]     Checking trust-dns-proto v0.22.0
[INFO] [stderr]     Checking netlink-proto v0.10.0
[INFO] [stderr]     Checking rtnetlink v0.10.1
[INFO] [stderr]     Checking ed25519-dalek v1.0.1
[INFO] [stderr]     Checking libp2p-identity v0.2.0
[INFO] [stderr]     Checking if-watch v3.0.1
[INFO] [stderr]     Checking multiaddr v0.18.0
[INFO] [stderr]     Checking libp2p-core v0.40.0
[INFO] [stderr]     Checking libp2p-swarm v0.43.0
[INFO] [stderr]     Checking libp2p-tcp v0.40.0
[INFO] [stderr]     Checking libp2p-noise v0.43.0
[INFO] [stderr]     Checking libp2p-yamux v0.44.0
[INFO] [stderr]     Checking libp2p-mdns v0.44.0
[INFO] [stderr]     Checking libp2p-floodsub v0.43.0
[INFO] [stderr]     Checking libp2p-allow-block-list v0.2.0
[INFO] [stderr]     Checking libp2p-connection-limits v0.2.0
[INFO] [stderr]     Checking libp2p v0.52.0
[INFO] [stderr]     Checking cooking-recipe-p2p v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::panic::resume_unwind`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::panic::resume_unwind;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::write`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ptr::write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |       /// Transport is a set of protocols that enables connection-oriented communication between peers.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 | /     let transport = tcp::async_io::Transport::default()
[INFO] [stdout] 85 | |         .upgrade(Version::V1)
[INFO] [stdout] 86 | |         .authenticate(noise::Config::new(&KEYS).unwrap())
[INFO] [stdout] 87 | |         .multiplex(yamux::Config::default())
[INFO] [stdout] 88 | |         .boxed();
[INFO] [stdout]    | |_________________- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |       /// A swarm manages the connections created using the transport and executes the network behaviour we created,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 101 |       /// triggering and receiving events and giving us a way to get to them from the outside
[INFO] [stdout] 102 | /     let mut swarm = SwarmBuilder::with_tokio_executor(
[INFO] [stdout] 103 | |         transport, behaviour, PEER_ID.clone(),
[INFO] [stdout] 104 | |     ).build();
[INFO] [stdout]     | |______________- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |       /// triggering and receiving events and giving us a way to get to them from the outside
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 | /     let mut swarm = SwarmBuilder::with_tokio_executor(
[INFO] [stdout] 103 | |         transport, behaviour, PEER_ID.clone(),
[INFO] [stdout] 104 | |     ).build();
[INFO] [stdout]     | |______________- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 109 |       /// start our swarm, letting the OS decide the port for us
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 | /     Swarm::listen_on(
[INFO] [stdout] 111 | |         &mut swarm,
[INFO] [stdout] 112 | |         "/ip4/0.0.0.0/tcp/0"
[INFO] [stdout] 113 | |             .parse()
[INFO] [stdout] 114 | |             .expect("can get a local socket"),
[INFO] [stdout] 115 | |     ).expect("swarm can be started");
[INFO] [stdout]     | |____________________________________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::panic::resume_unwind`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::panic::resume_unwind;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::write`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ptr::write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |       /// Transport is a set of protocols that enables connection-oriented communication between peers.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 | /     let transport = tcp::async_io::Transport::default()
[INFO] [stdout] 85 | |         .upgrade(Version::V1)
[INFO] [stdout] 86 | |         .authenticate(noise::Config::new(&KEYS).unwrap())
[INFO] [stdout] 87 | |         .multiplex(yamux::Config::default())
[INFO] [stdout] 88 | |         .boxed();
[INFO] [stdout]    | |_________________- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |       /// A swarm manages the connections created using the transport and executes the network behaviour we created,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 101 |       /// triggering and receiving events and giving us a way to get to them from the outside
[INFO] [stdout] 102 | /     let mut swarm = SwarmBuilder::with_tokio_executor(
[INFO] [stdout] 103 | |         transport, behaviour, PEER_ID.clone(),
[INFO] [stdout] 104 | |     ).build();
[INFO] [stdout]     | |______________- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |       /// triggering and receiving events and giving us a way to get to them from the outside
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 | /     let mut swarm = SwarmBuilder::with_tokio_executor(
[INFO] [stdout] 103 | |         transport, behaviour, PEER_ID.clone(),
[INFO] [stdout] 104 | |     ).build();
[INFO] [stdout]     | |______________- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 109 |       /// start our swarm, letting the OS decide the port for us
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 | /     Swarm::listen_on(
[INFO] [stdout] 111 | |         &mut swarm,
[INFO] [stdout] 112 | |         "/ip4/0.0.0.0/tcp/0"
[INFO] [stdout] 113 | |             .parse()
[INFO] [stdout] 114 | |             .expect("can get a local socket"),
[INFO] [stdout] 115 | |     ).expect("swarm can be started");
[INFO] [stdout]     | |____________________________________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` is not satisfied
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ the trait `NetworkBehaviour` is not implemented for `tokio::sync::mpsc::UnboundedSender<ListResponse>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `NetworkBehaviour`:
[INFO] [stdout]              Floodsub
[INFO] [stdout]              RecipeBehaviour
[INFO] [stdout]              Toggle<TBehaviour>
[INFO] [stdout]              libp2p::libp2p_allow_block_list::Behaviour<S>
[INFO] [stdout]              libp2p::libp2p_connection_limits::Behaviour
[INFO] [stdout]              libp2p::libp2p_mdns::Behaviour<P>
[INFO] [stdout]              libp2p::libp2p_swarm::derive_prelude::Either<L, R>
[INFO] [stdout]              libp2p::libp2p_swarm::dummy::Behaviour
[INFO] [stdout]              libp2p::libp2p_swarm::keep_alive::Behaviour
[INFO] [stdout]    = help: see issue #48214
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
[INFO] [stdout]    |
[INFO] [stdout] 1  + #![feature(trivial_bounds)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` is not satisfied
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ the trait `NetworkBehaviour` is not implemented for `tokio::sync::mpsc::UnboundedSender<ListResponse>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `NetworkBehaviour`:
[INFO] [stdout]              Floodsub
[INFO] [stdout]              RecipeBehaviour
[INFO] [stdout]              Toggle<TBehaviour>
[INFO] [stdout]              libp2p::libp2p_allow_block_list::Behaviour<S>
[INFO] [stdout]              libp2p::libp2p_connection_limits::Behaviour
[INFO] [stdout]              libp2p::libp2p_mdns::Behaviour<P>
[INFO] [stdout]              libp2p::libp2p_swarm::derive_prelude::Either<L, R>
[INFO] [stdout]              libp2p::libp2p_swarm::dummy::Behaviour
[INFO] [stdout]              libp2p::libp2p_swarm::keep_alive::Behaviour
[INFO] [stdout]    = help: see issue #48214
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
[INFO] [stdout]    |
[INFO] [stdout] 1  + #![feature(trivial_bounds)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: type alias takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: type alias defined here, with 1 generic parameter: `T`
[INFO] [stdout]   --> src/main.rs:20:6
[INFO] [stdout]    |
[INFO] [stdout] 20 | type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync + 'static>>;
[INFO] [stdout]    |      ^^^^^^ -
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `fmt` has an incompatible type for trait
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ expected `std::fmt::Error`, found `Box<dyn Error + Send + Sync>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&RecipeBehaviourEvent, &mut std::fmt::Formatter<'_>) -> std::result::Result<_, std::fmt::Error>`
[INFO] [stdout]               found signature `fn(&RecipeBehaviourEvent, &mut std::fmt::Formatter<'_>) -> std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: type alias takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: type alias defined here, with 1 generic parameter: `T`
[INFO] [stdout]   --> src/main.rs:20:6
[INFO] [stdout]    |
[INFO] [stdout] 20 | type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync + 'static>>;
[INFO] [stdout]    |      ^^^^^^ -
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `fmt` has an incompatible type for trait
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ expected `std::fmt::Error`, found `Box<dyn Error + Send + Sync>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&RecipeBehaviourEvent, &mut std::fmt::Formatter<'_>) -> std::result::Result<_, std::fmt::Error>`
[INFO] [stdout]               found signature `fn(&RecipeBehaviourEvent, &mut std::fmt::Formatter<'_>) -> std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `handle_pending_inbound_connection` has an incompatible type for trait
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ expected `ConnectionDenied`, found `Box<dyn Error + Send + Sync>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&mut RecipeBehaviour, ConnectionId, &Multiaddr, &Multiaddr) -> std::result::Result<_, ConnectionDenied>`
[INFO] [stdout]               found signature `fn(&mut RecipeBehaviour, ConnectionId, &Multiaddr, &Multiaddr) -> std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `handle_established_inbound_connection` has an incompatible type for trait
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ expected `ConnectionDenied`, found `Box<dyn Error + Send + Sync>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&mut RecipeBehaviour, ConnectionId, PeerId, &Multiaddr, &Multiaddr) -> std::result::Result<_, ConnectionDenied>`
[INFO] [stdout]               found signature `fn(&mut RecipeBehaviour, ConnectionId, PeerId, &Multiaddr, &Multiaddr) -> std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `handle_pending_outbound_connection` has an incompatible type for trait
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ expected `ConnectionDenied`, found `Box<dyn Error + Send + Sync>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&mut RecipeBehaviour, ConnectionId, std::option::Option<_>, &_, Endpoint) -> std::result::Result<_, ConnectionDenied>`
[INFO] [stdout]               found signature `fn(&mut RecipeBehaviour, ConnectionId, std::option::Option<_>, &_, Endpoint) -> std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `handle_established_outbound_connection` has an incompatible type for trait
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ expected `ConnectionDenied`, found `Box<dyn Error + Send + Sync>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&mut RecipeBehaviour, ConnectionId, PeerId, &Multiaddr, Endpoint) -> std::result::Result<_, ConnectionDenied>`
[INFO] [stdout]               found signature `fn(&mut RecipeBehaviour, ConnectionId, PeerId, &Multiaddr, Endpoint) -> std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `handle_pending_inbound_connection` has an incompatible type for trait
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ expected `ConnectionDenied`, found `Box<dyn Error + Send + Sync>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&mut RecipeBehaviour, ConnectionId, &Multiaddr, &Multiaddr) -> std::result::Result<_, ConnectionDenied>`
[INFO] [stdout]               found signature `fn(&mut RecipeBehaviour, ConnectionId, &Multiaddr, &Multiaddr) -> std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `handle_established_inbound_connection` has an incompatible type for trait
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ expected `ConnectionDenied`, found `Box<dyn Error + Send + Sync>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&mut RecipeBehaviour, ConnectionId, PeerId, &Multiaddr, &Multiaddr) -> std::result::Result<_, ConnectionDenied>`
[INFO] [stdout]               found signature `fn(&mut RecipeBehaviour, ConnectionId, PeerId, &Multiaddr, &Multiaddr) -> std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `handle_pending_outbound_connection` has an incompatible type for trait
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ expected `ConnectionDenied`, found `Box<dyn Error + Send + Sync>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&mut RecipeBehaviour, ConnectionId, std::option::Option<_>, &_, Endpoint) -> std::result::Result<_, ConnectionDenied>`
[INFO] [stdout]               found signature `fn(&mut RecipeBehaviour, ConnectionId, std::option::Option<_>, &_, Endpoint) -> std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `handle_established_outbound_connection` has an incompatible type for trait
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ expected `ConnectionDenied`, found `Box<dyn Error + Send + Sync>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&mut RecipeBehaviour, ConnectionId, PeerId, &Multiaddr, Endpoint) -> std::result::Result<_, ConnectionDenied>`
[INFO] [stdout]               found signature `fn(&mut RecipeBehaviour, ConnectionId, PeerId, &Multiaddr, Endpoint) -> std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]    = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` is not satisfied
[INFO] [stdout]    --> src/main.rs:196:40
[INFO] [stdout]     |
[INFO] [stdout] 196 | async fn handle_list_peers(swarm: &mut Swarm<RecipeBehaviour>) {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^ the trait `NetworkBehaviour` is not implemented for `tokio::sync::mpsc::UnboundedSender<ListResponse>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `NetworkBehaviour`:
[INFO] [stdout]               Floodsub
[INFO] [stdout]               RecipeBehaviour
[INFO] [stdout]               Toggle<TBehaviour>
[INFO] [stdout]               libp2p::libp2p_allow_block_list::Behaviour<S>
[INFO] [stdout]               libp2p::libp2p_connection_limits::Behaviour
[INFO] [stdout]               libp2p::libp2p_mdns::Behaviour<P>
[INFO] [stdout]               libp2p::libp2p_swarm::derive_prelude::Either<L, R>
[INFO] [stdout]               libp2p::libp2p_swarm::dummy::Behaviour
[INFO] [stdout]               libp2p::libp2p_swarm::keep_alive::Behaviour
[INFO] [stdout] note: required for `RecipeBehaviour` to implement `NetworkBehaviour`
[INFO] [stdout]    --> src/main.rs:68:10
[INFO] [stdout]     |
[INFO] [stdout] 68  | #[derive(NetworkBehaviour)]
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
[INFO] [stdout] 69  | struct RecipeBehaviour {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `Swarm`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libp2p-swarm-0.43.0/src/lib.rs:324:17
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct Swarm<TBehaviour>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout] 323 | where
[INFO] [stdout] 324 |     TBehaviour: NetworkBehaviour,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ required by this bound in `Swarm`
[INFO] [stdout]     = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` is not satisfied
[INFO] [stdout]    --> src/main.rs:207:53
[INFO] [stdout]     |
[INFO] [stdout] 207 | async fn handle_list_recipes(cmd: &str, swarm: &mut Swarm<RecipeBehaviour>) {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^ the trait `NetworkBehaviour` is not implemented for `tokio::sync::mpsc::UnboundedSender<ListResponse>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `NetworkBehaviour`:
[INFO] [stdout]               Floodsub
[INFO] [stdout]               RecipeBehaviour
[INFO] [stdout]               Toggle<TBehaviour>
[INFO] [stdout]               libp2p::libp2p_allow_block_list::Behaviour<S>
[INFO] [stdout]               libp2p::libp2p_connection_limits::Behaviour
[INFO] [stdout]               libp2p::libp2p_mdns::Behaviour<P>
[INFO] [stdout]               libp2p::libp2p_swarm::derive_prelude::Either<L, R>
[INFO] [stdout]               libp2p::libp2p_swarm::dummy::Behaviour
[INFO] [stdout]               libp2p::libp2p_swarm::keep_alive::Behaviour
[INFO] [stdout] note: required for `RecipeBehaviour` to implement `NetworkBehaviour`
[INFO] [stdout]    --> src/main.rs:68:10
[INFO] [stdout]     |
[INFO] [stdout] 68  | #[derive(NetworkBehaviour)]
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
[INFO] [stdout] 69  | struct RecipeBehaviour {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `Swarm`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libp2p-swarm-0.43.0/src/lib.rs:324:17
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct Swarm<TBehaviour>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout] 323 | where
[INFO] [stdout] 324 |     TBehaviour: NetworkBehaviour,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ required by this bound in `Swarm`
[INFO] [stdout]     = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` is not satisfied
[INFO] [stdout]    --> src/main.rs:196:40
[INFO] [stdout]     |
[INFO] [stdout] 196 | async fn handle_list_peers(swarm: &mut Swarm<RecipeBehaviour>) {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^ the trait `NetworkBehaviour` is not implemented for `tokio::sync::mpsc::UnboundedSender<ListResponse>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `NetworkBehaviour`:
[INFO] [stdout]               Floodsub
[INFO] [stdout]               RecipeBehaviour
[INFO] [stdout]               Toggle<TBehaviour>
[INFO] [stdout]               libp2p::libp2p_allow_block_list::Behaviour<S>
[INFO] [stdout]               libp2p::libp2p_connection_limits::Behaviour
[INFO] [stdout]               libp2p::libp2p_mdns::Behaviour<P>
[INFO] [stdout]               libp2p::libp2p_swarm::derive_prelude::Either<L, R>
[INFO] [stdout]               libp2p::libp2p_swarm::dummy::Behaviour
[INFO] [stdout]               libp2p::libp2p_swarm::keep_alive::Behaviour
[INFO] [stdout] note: required for `RecipeBehaviour` to implement `NetworkBehaviour`
[INFO] [stdout]    --> src/main.rs:68:10
[INFO] [stdout]     |
[INFO] [stdout] 68  | #[derive(NetworkBehaviour)]
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
[INFO] [stdout] 69  | struct RecipeBehaviour {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `Swarm`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libp2p-swarm-0.43.0/src/lib.rs:324:17
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct Swarm<TBehaviour>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout] 323 | where
[INFO] [stdout] 324 |     TBehaviour: NetworkBehaviour,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ required by this bound in `Swarm`
[INFO] [stdout]     = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` is not satisfied
[INFO] [stdout]    --> src/main.rs:207:53
[INFO] [stdout]     |
[INFO] [stdout] 207 | async fn handle_list_recipes(cmd: &str, swarm: &mut Swarm<RecipeBehaviour>) {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^ the trait `NetworkBehaviour` is not implemented for `tokio::sync::mpsc::UnboundedSender<ListResponse>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `NetworkBehaviour`:
[INFO] [stdout]               Floodsub
[INFO] [stdout]               RecipeBehaviour
[INFO] [stdout]               Toggle<TBehaviour>
[INFO] [stdout]               libp2p::libp2p_allow_block_list::Behaviour<S>
[INFO] [stdout]               libp2p::libp2p_connection_limits::Behaviour
[INFO] [stdout]               libp2p::libp2p_mdns::Behaviour<P>
[INFO] [stdout]               libp2p::libp2p_swarm::derive_prelude::Either<L, R>
[INFO] [stdout]               libp2p::libp2p_swarm::dummy::Behaviour
[INFO] [stdout]               libp2p::libp2p_swarm::keep_alive::Behaviour
[INFO] [stdout] note: required for `RecipeBehaviour` to implement `NetworkBehaviour`
[INFO] [stdout]    --> src/main.rs:68:10
[INFO] [stdout]     |
[INFO] [stdout] 68  | #[derive(NetworkBehaviour)]
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
[INFO] [stdout] 69  | struct RecipeBehaviour {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `Swarm`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libp2p-swarm-0.43.0/src/lib.rs:324:17
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct Swarm<TBehaviour>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout] 323 | where
[INFO] [stdout] 324 |     TBehaviour: NetworkBehaviour,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ required by this bound in `Swarm`
[INFO] [stdout]     = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `std::result::Result<Vec<u8>, std::io::Error>` is not a future
[INFO] [stdout]    --> src/main.rs:185:47
[INFO] [stdout]     |
[INFO] [stdout] 185 |     let content = fs::read(STORAGE_FILE_PATH).await?;
[INFO] [stdout]     |                   ----------------------------^^^^^
[INFO] [stdout]     |                   |                          ||
[INFO] [stdout]     |                   |                          |`std::result::Result<Vec<u8>, std::io::Error>` is not a future
[INFO] [stdout]     |                   |                          help: remove the `.await`
[INFO] [stdout]     |                   this call returns `std::result::Result<Vec<u8>, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `std::future::Future` is not implemented for `std::result::Result<Vec<u8>, std::io::Error>`
[INFO] [stdout]     = note: std::result::Result<Vec<u8>, std::io::Error> must be a future or must implement `IntoFuture` to be awaited
[INFO] [stdout]     = note: required for `std::result::Result<Vec<u8>, std::io::Error>` to implement `std::future::IntoFuture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/main.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |     let content = fs::read(STORAGE_FILE_PATH).await?;
[INFO] [stdout]     |         ^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout]     = help: unsized locals are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/main.rs:185:19
[INFO] [stdout]     |
[INFO] [stdout] 185 |     let content = fs::read(STORAGE_FILE_PATH).await?;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout]     = help: unsized locals are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/main.rs:185:52
[INFO] [stdout]     |
[INFO] [stdout] 185 |     let content = fs::read(STORAGE_FILE_PATH).await?;
[INFO] [stdout]     |                                                    ^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout] note: required by a bound in `Break`
[INFO] [stdout]    --> /rustc/46424fb5054f211ec836c5c03159f92e46bb35ac/library/core/src/ops/control_flow.rs:95:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `std::result::Result<(), std::io::Error>` is not a future
[INFO] [stdout]    --> src/main.rs:192:41
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fs::write(STORAGE_FILE_PATH, &json).await?;
[INFO] [stdout]     |     ------------------------------------^^^^^
[INFO] [stdout]     |     |                                  ||
[INFO] [stdout]     |     |                                  |`std::result::Result<(), std::io::Error>` is not a future
[INFO] [stdout]     |     |                                  help: remove the `.await`
[INFO] [stdout]     |     this call returns `std::result::Result<(), std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `std::future::Future` is not implemented for `std::result::Result<(), std::io::Error>`
[INFO] [stdout]     = note: std::result::Result<(), std::io::Error> must be a future or must implement `IntoFuture` to be awaited
[INFO] [stdout]     = note: required for `std::result::Result<(), std::io::Error>` to implement `std::future::IntoFuture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `std::result::Result<Vec<u8>, std::io::Error>` is not a future
[INFO] [stdout]    --> src/main.rs:185:47
[INFO] [stdout]     |
[INFO] [stdout] 185 |     let content = fs::read(STORAGE_FILE_PATH).await?;
[INFO] [stdout]     |                   ----------------------------^^^^^
[INFO] [stdout]     |                   |                          ||
[INFO] [stdout]     |                   |                          |`std::result::Result<Vec<u8>, std::io::Error>` is not a future
[INFO] [stdout]     |                   |                          help: remove the `.await`
[INFO] [stdout]     |                   this call returns `std::result::Result<Vec<u8>, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `std::future::Future` is not implemented for `std::result::Result<Vec<u8>, std::io::Error>`
[INFO] [stdout]     = note: std::result::Result<Vec<u8>, std::io::Error> must be a future or must implement `IntoFuture` to be awaited
[INFO] [stdout]     = note: required for `std::result::Result<Vec<u8>, std::io::Error>` to implement `std::future::IntoFuture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/main.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |     let content = fs::read(STORAGE_FILE_PATH).await?;
[INFO] [stdout]     |         ^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout]     = help: unsized locals are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/main.rs:185:19
[INFO] [stdout]     |
[INFO] [stdout] 185 |     let content = fs::read(STORAGE_FILE_PATH).await?;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout]     = help: unsized locals are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/main.rs:185:52
[INFO] [stdout]     |
[INFO] [stdout] 185 |     let content = fs::read(STORAGE_FILE_PATH).await?;
[INFO] [stdout]     |                                                    ^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout] note: required by a bound in `Break`
[INFO] [stdout]    --> /rustc/46424fb5054f211ec836c5c03159f92e46bb35ac/library/core/src/ops/control_flow.rs:95:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `std::result::Result<(), std::io::Error>` is not a future
[INFO] [stdout]    --> src/main.rs:192:41
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fs::write(STORAGE_FILE_PATH, &json).await?;
[INFO] [stdout]     |     ------------------------------------^^^^^
[INFO] [stdout]     |     |                                  ||
[INFO] [stdout]     |     |                                  |`std::result::Result<(), std::io::Error>` is not a future
[INFO] [stdout]     |     |                                  help: remove the `.await`
[INFO] [stdout]     |     this call returns `std::result::Result<(), std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `std::future::Future` is not implemented for `std::result::Result<(), std::io::Error>`
[INFO] [stdout]     = note: std::result::Result<(), std::io::Error> must be a future or must implement `IntoFuture` to be awaited
[INFO] [stdout]     = note: required for `std::result::Result<(), std::io::Error>` to implement `std::future::IntoFuture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `behaviour` exists for mutable reference `&mut Swarm<RecipeBehaviour>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/main.rs:198:23
[INFO] [stdout]     |
[INFO] [stdout] 69  | struct RecipeBehaviour {
[INFO] [stdout]     | ---------------------- doesn't satisfy `RecipeBehaviour: NetworkBehaviour`
[INFO] [stdout] ...
[INFO] [stdout] 198 |     let nodes = swarm.behaviour().mdns.discovered_nodes();
[INFO] [stdout]     |                       ^^^^^^^^^ private field, not a method
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.28.2/src/sync/mpsc/unbounded.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct UnboundedSender<T> {
[INFO] [stdout]     | ----------------------------- doesn't satisfy `_: NetworkBehaviour`
[INFO] [stdout]     |
[INFO] [stdout]     = note: trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` was not satisfied
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `behaviour` exists for mutable reference `&mut Swarm<RecipeBehaviour>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/main.rs:198:23
[INFO] [stdout]     |
[INFO] [stdout] 69  | struct RecipeBehaviour {
[INFO] [stdout]     | ---------------------- doesn't satisfy `RecipeBehaviour: NetworkBehaviour`
[INFO] [stdout] ...
[INFO] [stdout] 198 |     let nodes = swarm.behaviour().mdns.discovered_nodes();
[INFO] [stdout]     |                       ^^^^^^^^^ private field, not a method
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.28.2/src/sync/mpsc/unbounded.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  | pub struct UnboundedSender<T> {
[INFO] [stdout]     | ----------------------------- doesn't satisfy `_: NetworkBehaviour`
[INFO] [stdout]     |
[INFO] [stdout]     = note: trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` was not satisfied
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |         unique_peers.insert(peer)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^- help: consider using a semicolon here: `;`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         expected `()`, found `bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |         unique_peers.insert(peer)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^- help: consider using a semicolon here: `;`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         expected `()`, found `bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `behaviour_mut` exists for mutable reference `&mut Swarm<RecipeBehaviour>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/main.rs:218:18
[INFO] [stdout]     |
[INFO] [stdout] 69  |   struct RecipeBehaviour {
[INFO] [stdout]     |   ---------------------- doesn't satisfy `RecipeBehaviour: NetworkBehaviour`
[INFO] [stdout] ...
[INFO] [stdout] 217 | /             swarm
[INFO] [stdout] 218 | |                 .behaviour_mut()
[INFO] [stdout]     | |                 -^^^^^^^^^^^^^ method cannot be called on `&mut Swarm<RecipeBehaviour>` due to unsatisfied trait bounds
[INFO] [stdout]     | |_________________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.28.2/src/sync/mpsc/unbounded.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  |   pub struct UnboundedSender<T> {
[INFO] [stdout]     |   ----------------------------- doesn't satisfy `_: NetworkBehaviour`
[INFO] [stdout]     |
[INFO] [stdout]     = note: trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` was not satisfied
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `behaviour_mut` exists for mutable reference `&mut Swarm<RecipeBehaviour>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/main.rs:218:18
[INFO] [stdout]     |
[INFO] [stdout] 69  |   struct RecipeBehaviour {
[INFO] [stdout]     |   ---------------------- doesn't satisfy `RecipeBehaviour: NetworkBehaviour`
[INFO] [stdout] ...
[INFO] [stdout] 217 | /             swarm
[INFO] [stdout] 218 | |                 .behaviour_mut()
[INFO] [stdout]     | |                 -^^^^^^^^^^^^^ method cannot be called on `&mut Swarm<RecipeBehaviour>` due to unsatisfied trait bounds
[INFO] [stdout]     | |_________________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.28.2/src/sync/mpsc/unbounded.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  |   pub struct UnboundedSender<T> {
[INFO] [stdout]     |   ----------------------------- doesn't satisfy `_: NetworkBehaviour`
[INFO] [stdout]     |
[INFO] [stdout]     = note: trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` was not satisfied
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `behaviour_mut` exists for mutable reference `&mut Swarm<RecipeBehaviour>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/main.rs:229:18
[INFO] [stdout]     |
[INFO] [stdout] 69  |   struct RecipeBehaviour {
[INFO] [stdout]     |   ---------------------- doesn't satisfy `RecipeBehaviour: NetworkBehaviour`
[INFO] [stdout] ...
[INFO] [stdout] 228 | /             swarm
[INFO] [stdout] 229 | |                 .behaviour_mut()
[INFO] [stdout]     | |                 -^^^^^^^^^^^^^ method cannot be called on `&mut Swarm<RecipeBehaviour>` due to unsatisfied trait bounds
[INFO] [stdout]     | |_________________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.28.2/src/sync/mpsc/unbounded.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  |   pub struct UnboundedSender<T> {
[INFO] [stdout]     |   ----------------------------- doesn't satisfy `_: NetworkBehaviour`
[INFO] [stdout]     |
[INFO] [stdout]     = note: trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` was not satisfied
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `behaviour_mut` exists for mutable reference `&mut Swarm<RecipeBehaviour>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/main.rs:229:18
[INFO] [stdout]     |
[INFO] [stdout] 69  |   struct RecipeBehaviour {
[INFO] [stdout]     |   ---------------------- doesn't satisfy `RecipeBehaviour: NetworkBehaviour`
[INFO] [stdout] ...
[INFO] [stdout] 228 | /             swarm
[INFO] [stdout] 229 | |                 .behaviour_mut()
[INFO] [stdout]     | |                 -^^^^^^^^^^^^^ method cannot be called on `&mut Swarm<RecipeBehaviour>` due to unsatisfied trait bounds
[INFO] [stdout]     | |_________________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.28.2/src/sync/mpsc/unbounded.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  |   pub struct UnboundedSender<T> {
[INFO] [stdout]     |   ----------------------------- doesn't satisfy `_: NetworkBehaviour`
[INFO] [stdout]     |
[INFO] [stdout]     = note: trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` was not satisfied
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          expected `Result<(), Box<dyn Error + Send + Sync>>`, found `Result<(), Error>`
[INFO] [stdout]    |          expected `std::result::Result<(), Box<(dyn StdError + std::marker::Send + Sync + 'static)>>` because of return type
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]               found enum `std::result::Result<_, std::fmt::Error>`
[INFO] [stdout]    = note: this error originates in the macro `write` which comes from the expansion of the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          expected `Result<(), Box<dyn Error + Send + Sync>>`, found `Result<(), Error>`
[INFO] [stdout]    |          expected `std::result::Result<(), Box<(dyn StdError + std::marker::Send + Sync + 'static)>>` because of return type
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]               found enum `std::result::Result<_, std::fmt::Error>`
[INFO] [stdout]    = note: this error originates in the macro `write` which comes from the expansion of the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          expected `Result<(), Box<dyn Error + Send + Sync>>`, found `Result<(), Error>`
[INFO] [stdout]    |          expected `std::result::Result<(), Box<(dyn StdError + std::marker::Send + Sync + 'static)>>` because of return type
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]               found enum `std::result::Result<_, std::fmt::Error>`
[INFO] [stdout]    = note: this error originates in the macro `write` which comes from the expansion of the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          expected `Result<(), Box<dyn Error + Send + Sync>>`, found `Result<(), Error>`
[INFO] [stdout]    |          expected `std::result::Result<(), Box<(dyn StdError + std::marker::Send + Sync + 'static)>>` because of return type
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]               found enum `std::result::Result<_, std::fmt::Error>`
[INFO] [stdout]    = note: this error originates in the macro `write` which comes from the expansion of the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          expected `Result<(), Box<dyn Error + Send + Sync>>`, found `Result<(), Error>`
[INFO] [stdout]    |          expected `std::result::Result<(), Box<(dyn StdError + std::marker::Send + Sync + 'static)>>` because of return type
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]               found enum `std::result::Result<_, std::fmt::Error>`
[INFO] [stdout]    = note: this error originates in the macro `write` which comes from the expansion of the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(NetworkBehaviour)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          expected `Result<(), Box<dyn Error + Send + Sync>>`, found `Result<(), Error>`
[INFO] [stdout]    |          expected `std::result::Result<(), Box<(dyn StdError + std::marker::Send + Sync + 'static)>>` because of return type
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `std::result::Result<_, Box<(dyn StdError + std::marker::Send + Sync + 'static)>>`
[INFO] [stdout]               found enum `std::result::Result<_, std::fmt::Error>`
[INFO] [stdout]    = note: this error originates in the macro `write` which comes from the expansion of the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` is not satisfied
[INFO] [stdout]     --> src/main.rs:103:20
[INFO] [stdout]      |
[INFO] [stdout] 102  |     let mut swarm = SwarmBuilder::with_tokio_executor(
[INFO] [stdout]      |                     --------------------------------- required by a bound introduced by this call
[INFO] [stdout] 103  |         transport, behaviour, PEER_ID.clone(),
[INFO] [stdout]      |                    ^^^^^^^^^ the trait `NetworkBehaviour` is not implemented for `tokio::sync::mpsc::UnboundedSender<ListResponse>`
[INFO] [stdout]      |
[INFO] [stdout]      = help: the following other types implement trait `NetworkBehaviour`:
[INFO] [stdout]                Floodsub
[INFO] [stdout]                RecipeBehaviour
[INFO] [stdout]                Toggle<TBehaviour>
[INFO] [stdout]                libp2p::libp2p_allow_block_list::Behaviour<S>
[INFO] [stdout]                libp2p::libp2p_connection_limits::Behaviour
[INFO] [stdout]                libp2p::libp2p_mdns::Behaviour<P>
[INFO] [stdout]                libp2p::libp2p_swarm::derive_prelude::Either<L, R>
[INFO] [stdout]                libp2p::libp2p_swarm::dummy::Behaviour
[INFO] [stdout]                libp2p::libp2p_swarm::keep_alive::Behaviour
[INFO] [stdout] note: required for `RecipeBehaviour` to implement `NetworkBehaviour`
[INFO] [stdout]     --> src/main.rs:68:10
[INFO] [stdout]      |
[INFO] [stdout] 68   | #[derive(NetworkBehaviour)]
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
[INFO] [stdout] 69   | struct RecipeBehaviour {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `SwarmBuilder::<TBehaviour>::with_tokio_executor`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libp2p-swarm-0.43.0/src/lib.rs:1353:17
[INFO] [stdout]      |
[INFO] [stdout] 1353 |     TBehaviour: NetworkBehaviour,
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^ required by this bound in `SwarmBuilder::<TBehaviour>::with_tokio_executor`
[INFO] [stdout] ...
[INFO] [stdout] 1401 |     pub fn with_tokio_executor(
[INFO] [stdout]      |            ------------------- required by a bound in this associated function
[INFO] [stdout]      = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `build` exists for struct `SwarmBuilder<RecipeBehaviour>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/main.rs:104:7
[INFO] [stdout]     |
[INFO] [stdout] 69  |   struct RecipeBehaviour {
[INFO] [stdout]     |   ---------------------- doesn't satisfy `RecipeBehaviour: NetworkBehaviour`
[INFO] [stdout] ...
[INFO] [stdout] 102 |       let mut swarm = SwarmBuilder::with_tokio_executor(
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 103 | |         transport, behaviour, PEER_ID.clone(),
[INFO] [stdout] 104 | |     ).build();
[INFO] [stdout]     | |      -^^^^^ method cannot be called on `SwarmBuilder<RecipeBehaviour>` due to unsatisfied trait bounds
[INFO] [stdout]     | |______|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.28.2/src/sync/mpsc/unbounded.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  |   pub struct UnboundedSender<T> {
[INFO] [stdout]     |   ----------------------------- doesn't satisfy `_: NetworkBehaviour`
[INFO] [stdout]     |
[INFO] [stdout]     = note: trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` was not satisfied
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` is not satisfied
[INFO] [stdout]     --> src/main.rs:103:20
[INFO] [stdout]      |
[INFO] [stdout] 102  |     let mut swarm = SwarmBuilder::with_tokio_executor(
[INFO] [stdout]      |                     --------------------------------- required by a bound introduced by this call
[INFO] [stdout] 103  |         transport, behaviour, PEER_ID.clone(),
[INFO] [stdout]      |                    ^^^^^^^^^ the trait `NetworkBehaviour` is not implemented for `tokio::sync::mpsc::UnboundedSender<ListResponse>`
[INFO] [stdout]      |
[INFO] [stdout]      = help: the following other types implement trait `NetworkBehaviour`:
[INFO] [stdout]                Floodsub
[INFO] [stdout]                RecipeBehaviour
[INFO] [stdout]                Toggle<TBehaviour>
[INFO] [stdout]                libp2p::libp2p_allow_block_list::Behaviour<S>
[INFO] [stdout]                libp2p::libp2p_connection_limits::Behaviour
[INFO] [stdout]                libp2p::libp2p_mdns::Behaviour<P>
[INFO] [stdout]                libp2p::libp2p_swarm::derive_prelude::Either<L, R>
[INFO] [stdout]                libp2p::libp2p_swarm::dummy::Behaviour
[INFO] [stdout]                libp2p::libp2p_swarm::keep_alive::Behaviour
[INFO] [stdout] note: required for `RecipeBehaviour` to implement `NetworkBehaviour`
[INFO] [stdout]     --> src/main.rs:68:10
[INFO] [stdout]      |
[INFO] [stdout] 68   | #[derive(NetworkBehaviour)]
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
[INFO] [stdout] 69   | struct RecipeBehaviour {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `SwarmBuilder::<TBehaviour>::with_tokio_executor`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libp2p-swarm-0.43.0/src/lib.rs:1353:17
[INFO] [stdout]      |
[INFO] [stdout] 1353 |     TBehaviour: NetworkBehaviour,
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^ required by this bound in `SwarmBuilder::<TBehaviour>::with_tokio_executor`
[INFO] [stdout] ...
[INFO] [stdout] 1401 |     pub fn with_tokio_executor(
[INFO] [stdout]      |            ------------------- required by a bound in this associated function
[INFO] [stdout]      = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `build` exists for struct `SwarmBuilder<RecipeBehaviour>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/main.rs:104:7
[INFO] [stdout]     |
[INFO] [stdout] 69  |   struct RecipeBehaviour {
[INFO] [stdout]     |   ---------------------- doesn't satisfy `RecipeBehaviour: NetworkBehaviour`
[INFO] [stdout] ...
[INFO] [stdout] 102 |       let mut swarm = SwarmBuilder::with_tokio_executor(
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 103 | |         transport, behaviour, PEER_ID.clone(),
[INFO] [stdout] 104 | |     ).build();
[INFO] [stdout]     | |      -^^^^^ method cannot be called on `SwarmBuilder<RecipeBehaviour>` due to unsatisfied trait bounds
[INFO] [stdout]     | |______|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.28.2/src/sync/mpsc/unbounded.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout] 12  |   pub struct UnboundedSender<T> {
[INFO] [stdout]     |   ----------------------------- doesn't satisfy `_: NetworkBehaviour`
[INFO] [stdout]     |
[INFO] [stdout]     = note: trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` was not satisfied
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `lines` exists for struct `BufReader<Stdin>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/main.rs:107:67
[INFO] [stdout]     |
[INFO] [stdout] 107 |       let mut stdin = tokio::io::BufReader::new(tokio::io::stdin()).lines();
[INFO] [stdout]     |                                                                     ^^^^^ method cannot be called on `BufReader<Stdin>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.28.2/src/io/util/buf_reader.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout] 10  | / pin_project! {
[INFO] [stdout] 11  | |     /// The `BufReader` struct adds buffering to any reader.
[INFO] [stdout] 12  | |     ///
[INFO] [stdout] 13  | |     /// It can be excessively inefficient to work directly with a [`AsyncRead`]
[INFO] [stdout] ...   |
[INFO] [stdout] 35  | | }
[INFO] [stdout]     | |_- doesn't satisfy `_: AsyncBufReadExt` or `_: AsyncBufRead`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `tokio::io::BufReader<tokio::io::Stdin>: libp2p::futures::AsyncBufRead`
[INFO] [stdout]             which is required by `tokio::io::BufReader<tokio::io::Stdin>: libp2p::futures::AsyncBufReadExt`
[INFO] [stdout]             `&tokio::io::BufReader<tokio::io::Stdin>: libp2p::futures::AsyncBufRead`
[INFO] [stdout]             which is required by `&tokio::io::BufReader<tokio::io::Stdin>: libp2p::futures::AsyncBufReadExt`
[INFO] [stdout]             `&mut tokio::io::BufReader<tokio::io::Stdin>: libp2p::futures::AsyncBufRead`
[INFO] [stdout]             which is required by `&mut tokio::io::BufReader<tokio::io::Stdin>: libp2p::futures::AsyncBufReadExt`
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `AsyncBufReadExt` which provides `lines` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use tokio::io::AsyncBufReadExt;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `lines` exists for struct `BufReader<Stdin>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/main.rs:107:67
[INFO] [stdout]     |
[INFO] [stdout] 107 |       let mut stdin = tokio::io::BufReader::new(tokio::io::stdin()).lines();
[INFO] [stdout]     |                                                                     ^^^^^ method cannot be called on `BufReader<Stdin>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.28.2/src/io/util/buf_reader.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout] 10  | / pin_project! {
[INFO] [stdout] 11  | |     /// The `BufReader` struct adds buffering to any reader.
[INFO] [stdout] 12  | |     ///
[INFO] [stdout] 13  | |     /// It can be excessively inefficient to work directly with a [`AsyncRead`]
[INFO] [stdout] ...   |
[INFO] [stdout] 35  | | }
[INFO] [stdout]     | |_- doesn't satisfy `_: AsyncBufReadExt` or `_: AsyncBufRead`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `tokio::io::BufReader<tokio::io::Stdin>: libp2p::futures::AsyncBufRead`
[INFO] [stdout]             which is required by `tokio::io::BufReader<tokio::io::Stdin>: libp2p::futures::AsyncBufReadExt`
[INFO] [stdout]             `&tokio::io::BufReader<tokio::io::Stdin>: libp2p::futures::AsyncBufRead`
[INFO] [stdout]             which is required by `&tokio::io::BufReader<tokio::io::Stdin>: libp2p::futures::AsyncBufReadExt`
[INFO] [stdout]             `&mut tokio::io::BufReader<tokio::io::Stdin>: libp2p::futures::AsyncBufRead`
[INFO] [stdout]             which is required by `&mut tokio::io::BufReader<tokio::io::Stdin>: libp2p::futures::AsyncBufReadExt`
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `AsyncBufReadExt` which provides `lines` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use tokio::io::AsyncBufReadExt;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` is not satisfied
[INFO] [stdout]    --> src/main.rs:140:49
[INFO] [stdout]     |
[INFO] [stdout] 140 |                     "ls p" => handle_list_peers(&mut swarm).await,
[INFO] [stdout]     |                                                 ^^^^^^^^^^ the trait `NetworkBehaviour` is not implemented for `tokio::sync::mpsc::UnboundedSender<ListResponse>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `NetworkBehaviour`:
[INFO] [stdout]               Floodsub
[INFO] [stdout]               RecipeBehaviour
[INFO] [stdout]               Toggle<TBehaviour>
[INFO] [stdout]               libp2p::libp2p_allow_block_list::Behaviour<S>
[INFO] [stdout]               libp2p::libp2p_connection_limits::Behaviour
[INFO] [stdout]               libp2p::libp2p_mdns::Behaviour<P>
[INFO] [stdout]               libp2p::libp2p_swarm::derive_prelude::Either<L, R>
[INFO] [stdout]               libp2p::libp2p_swarm::dummy::Behaviour
[INFO] [stdout]               libp2p::libp2p_swarm::keep_alive::Behaviour
[INFO] [stdout] note: required for `RecipeBehaviour` to implement `NetworkBehaviour`
[INFO] [stdout]    --> src/main.rs:68:10
[INFO] [stdout]     |
[INFO] [stdout] 68  | #[derive(NetworkBehaviour)]
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
[INFO] [stdout] 69  | struct RecipeBehaviour {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `Swarm`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libp2p-swarm-0.43.0/src/lib.rs:324:17
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct Swarm<TBehaviour>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout] 323 | where
[INFO] [stdout] 324 |     TBehaviour: NetworkBehaviour,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ required by this bound in `Swarm`
[INFO] [stdout]     = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` is not satisfied
[INFO] [stdout]    --> src/main.rs:141:80
[INFO] [stdout]     |
[INFO] [stdout] 141 |                     cmd if cmd.starts_with("ls r") => handle_list_recipes(cmd, &mut swarm).await,
[INFO] [stdout]     |                                                                                ^^^^^^^^^^ the trait `NetworkBehaviour` is not implemented for `tokio::sync::mpsc::UnboundedSender<ListResponse>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `NetworkBehaviour`:
[INFO] [stdout]               Floodsub
[INFO] [stdout]               RecipeBehaviour
[INFO] [stdout]               Toggle<TBehaviour>
[INFO] [stdout]               libp2p::libp2p_allow_block_list::Behaviour<S>
[INFO] [stdout]               libp2p::libp2p_connection_limits::Behaviour
[INFO] [stdout]               libp2p::libp2p_mdns::Behaviour<P>
[INFO] [stdout]               libp2p::libp2p_swarm::derive_prelude::Either<L, R>
[INFO] [stdout]               libp2p::libp2p_swarm::dummy::Behaviour
[INFO] [stdout]               libp2p::libp2p_swarm::keep_alive::Behaviour
[INFO] [stdout] note: required for `RecipeBehaviour` to implement `NetworkBehaviour`
[INFO] [stdout]    --> src/main.rs:68:10
[INFO] [stdout]     |
[INFO] [stdout] 68  | #[derive(NetworkBehaviour)]
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
[INFO] [stdout] 69  | struct RecipeBehaviour {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `Swarm`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libp2p-swarm-0.43.0/src/lib.rs:324:17
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct Swarm<TBehaviour>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout] 323 | where
[INFO] [stdout] 324 |     TBehaviour: NetworkBehaviour,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ required by this bound in `Swarm`
[INFO] [stdout]     = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` is not satisfied
[INFO] [stdout]    --> src/main.rs:140:49
[INFO] [stdout]     |
[INFO] [stdout] 140 |                     "ls p" => handle_list_peers(&mut swarm).await,
[INFO] [stdout]     |                                                 ^^^^^^^^^^ the trait `NetworkBehaviour` is not implemented for `tokio::sync::mpsc::UnboundedSender<ListResponse>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `NetworkBehaviour`:
[INFO] [stdout]               Floodsub
[INFO] [stdout]               RecipeBehaviour
[INFO] [stdout]               Toggle<TBehaviour>
[INFO] [stdout]               libp2p::libp2p_allow_block_list::Behaviour<S>
[INFO] [stdout]               libp2p::libp2p_connection_limits::Behaviour
[INFO] [stdout]               libp2p::libp2p_mdns::Behaviour<P>
[INFO] [stdout]               libp2p::libp2p_swarm::derive_prelude::Either<L, R>
[INFO] [stdout]               libp2p::libp2p_swarm::dummy::Behaviour
[INFO] [stdout]               libp2p::libp2p_swarm::keep_alive::Behaviour
[INFO] [stdout] note: required for `RecipeBehaviour` to implement `NetworkBehaviour`
[INFO] [stdout]    --> src/main.rs:68:10
[INFO] [stdout]     |
[INFO] [stdout] 68  | #[derive(NetworkBehaviour)]
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
[INFO] [stdout] 69  | struct RecipeBehaviour {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `Swarm`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libp2p-swarm-0.43.0/src/lib.rs:324:17
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct Swarm<TBehaviour>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout] 323 | where
[INFO] [stdout] 324 |     TBehaviour: NetworkBehaviour,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ required by this bound in `Swarm`
[INFO] [stdout]     = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `tokio::sync::mpsc::UnboundedSender<ListResponse>: NetworkBehaviour` is not satisfied
[INFO] [stdout]    --> src/main.rs:141:80
[INFO] [stdout]     |
[INFO] [stdout] 141 |                     cmd if cmd.starts_with("ls r") => handle_list_recipes(cmd, &mut swarm).await,
[INFO] [stdout]     |                                                                                ^^^^^^^^^^ the trait `NetworkBehaviour` is not implemented for `tokio::sync::mpsc::UnboundedSender<ListResponse>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `NetworkBehaviour`:
[INFO] [stdout]               Floodsub
[INFO] [stdout]               RecipeBehaviour
[INFO] [stdout]               Toggle<TBehaviour>
[INFO] [stdout]               libp2p::libp2p_allow_block_list::Behaviour<S>
[INFO] [stdout]               libp2p::libp2p_connection_limits::Behaviour
[INFO] [stdout]               libp2p::libp2p_mdns::Behaviour<P>
[INFO] [stdout]               libp2p::libp2p_swarm::derive_prelude::Either<L, R>
[INFO] [stdout]               libp2p::libp2p_swarm::dummy::Behaviour
[INFO] [stdout]               libp2p::libp2p_swarm::keep_alive::Behaviour
[INFO] [stdout] note: required for `RecipeBehaviour` to implement `NetworkBehaviour`
[INFO] [stdout]    --> src/main.rs:68:10
[INFO] [stdout]     |
[INFO] [stdout] 68  | #[derive(NetworkBehaviour)]
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro
[INFO] [stdout] 69  | struct RecipeBehaviour {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `Swarm`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libp2p-swarm-0.43.0/src/lib.rs:324:17
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct Swarm<TBehaviour>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout] 323 | where
[INFO] [stdout] 324 |     TBehaviour: NetworkBehaviour,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ required by this bound in `Swarm`
[INFO] [stdout]     = note: this error originates in the derive macro `NetworkBehaviour` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0053, E0107, E0277, E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0053`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0053, E0107, E0277, E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0053`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cooking-recipe-p2p` (bin "cooking-recipe-p2p" test) due to 26 previous errors; 6 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `cooking-recipe-p2p` (bin "cooking-recipe-p2p") due to 26 previous errors; 6 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "675282fcfc37a9d8d556557f44752d8d3ddaa9452cb4562cc92fc7451606bb5b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "675282fcfc37a9d8d556557f44752d8d3ddaa9452cb4562cc92fc7451606bb5b", kill_on_drop: false }`
[INFO] [stdout] 675282fcfc37a9d8d556557f44752d8d3ddaa9452cb4562cc92fc7451606bb5b
