[INFO] cloning repository https://github.com/pritamnikam/rust-peer-2-peer-example
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pritamnikam/rust-peer-2-peer-example" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpritamnikam%2Frust-peer-2-peer-example", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpritamnikam%2Frust-peer-2-peer-example'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f4a10057f49e84bba363f1a47492e6d09c65f5c1
[INFO] checking pritamnikam/rust-peer-2-peer-example against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpritamnikam%2Frust-peer-2-peer-example" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pritamnikam/rust-peer-2-peer-example
[INFO] finished tweaking git repo https://github.com/pritamnikam/rust-peer-2-peer-example
[INFO] tweaked toml for git repo https://github.com/pritamnikam/rust-peer-2-peer-example written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pritamnikam/rust-peer-2-peer-example on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pritamnikam/rust-peer-2-peer-example 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.90
[INFO] [stderr]   Downloaded hermit-abi v0.3.4
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.90
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.90
[INFO] [stderr]   Downloaded value-bag v1.7.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.90
[INFO] [stderr]   Downloaded libp2p-deflate v0.29.0
[INFO] [stderr]   Downloaded libp2p v0.39.1
[INFO] [stderr]   Downloaded multihash-derive v0.7.2
[INFO] [stderr]   Downloaded libp2p-dns v0.29.0
[INFO] [stderr]   Downloaded libp2p-swarm-derive v0.24.0
[INFO] [stderr]   Downloaded libp2p-uds v0.29.0
[INFO] [stderr]   Downloaded async-std-resolver v0.20.4
[INFO] [stderr]   Downloaded pin-project-internal v0.4.30
[INFO] [stderr]   Downloaded libp2p-plaintext v0.29.0
[INFO] [stderr]   Downloaded salsa20 v0.8.1
[INFO] [stderr]   Downloaded libp2p-pnet v0.21.0
[INFO] [stderr]   Downloaded libp2p-wasm-ext v0.29.0
[INFO] [stderr]   Downloaded prost-derive v0.8.0
[INFO] [stderr]   Downloaded libp2p-identify v0.30.0
[INFO] [stderr]   Downloaded libp2p-mdns v0.31.0
[INFO] [stderr]   Downloaded libp2p-floodsub v0.30.0
[INFO] [stderr]   Downloaded lru v0.6.6
[INFO] [stderr]   Downloaded minicbor-derive v0.6.4
[INFO] [stderr]   Downloaded libp2p-request-response v0.12.0
[INFO] [stderr]   Downloaded ctr v0.7.0
[INFO] [stderr]   Downloaded libp2p-mplex v0.29.0
[INFO] [stderr]   Downloaded multistream-select v0.10.4
[INFO] [stderr]   Downloaded minicbor v0.8.1
[INFO] [stderr]   Downloaded blake2 v0.9.2
[INFO] [stderr]   Downloaded polling v3.3.2
[INFO] [stderr]   Downloaded trust-dns-resolver v0.20.4
[INFO] [stderr]   Downloaded libp2p-kad v0.31.0
[INFO] [stderr]   Downloaded x25519-dalek v1.2.0
[INFO] [stderr]   Downloaded libp2p-gossipsub v0.32.0
[INFO] [stderr]   Downloaded aes-gcm v0.9.2
[INFO] [stderr]   Downloaded winnow v0.5.37
[INFO] [stderr]   Downloaded pest v2.7.6
[INFO] [stderr]   Downloaded libp2p-core v0.29.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.90
[INFO] [stderr]   Downloaded chacha20poly1305 v0.8.2
[INFO] [stderr]   Downloaded asn1_der v0.7.6
[INFO] [stderr]   Downloaded pin-project v1.1.4
[INFO] [stderr]   Downloaded async-io v2.3.1
[INFO] [stderr]   Downloaded anyhow v1.0.79
[INFO] [stderr]   Downloaded libp2p-relay v0.3.0
[INFO] [stderr]   Downloaded libp2p-swarm v0.30.0
[INFO] [stderr]   Downloaded pin-project v0.4.30
[INFO] [stderr]   Downloaded thiserror v1.0.56
[INFO] [stderr]   Downloaded yamux v0.9.0
[INFO] [stderr]   Downloaded prost v0.8.0
[INFO] [stderr]   Downloaded multihash v0.14.0
[INFO] [stderr]   Downloaded multiaddr v0.13.0
[INFO] [stderr]   Downloaded pin-project-internal v1.1.4
[INFO] [stderr]   Downloaded chacha20 v0.7.3
[INFO] [stderr]   Downloaded libp2p-ping v0.30.0
[INFO] [stderr]   Downloaded tempfile v3.9.0
[INFO] [stderr]   Downloaded js-sys v0.3.67
[INFO] [stderr]   Downloaded libp2p-noise v0.32.0
[INFO] [stderr]   Downloaded prost-types v0.8.0
[INFO] [stderr]   Downloaded libp2p-websocket v0.30.0
[INFO] [stderr]   Downloaded libp2p-yamux v0.33.0
[INFO] [stderr]   Downloaded snow v0.8.0
[INFO] [stderr]   Downloaded if-addrs v0.6.7
[INFO] [stderr]   Downloaded if-watch v0.2.2
[INFO] [stderr]   Downloaded libp2p-tcp v0.29.0
[INFO] [stderr]   Downloaded thiserror-impl v1.0.56
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.40
[INFO] [stderr]   Downloaded libz-sys v1.1.15
[INFO] [stderr]   Downloaded prost-build v0.8.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 78acbd52ca85ed9bbfac12099525ea9c4cd611afa06cf07d75ee039c2469671b
[INFO] running `Command { std: "docker" "start" "-a" "78acbd52ca85ed9bbfac12099525ea9c4cd611afa06cf07d75ee039c2469671b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "78acbd52ca85ed9bbfac12099525ea9c4cd611afa06cf07d75ee039c2469671b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "78acbd52ca85ed9bbfac12099525ea9c4cd611afa06cf07d75ee039c2469671b", kill_on_drop: false }`
[INFO] [stdout] 78acbd52ca85ed9bbfac12099525ea9c4cd611afa06cf07d75ee039c2469671b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 35fa3a011513fc6b96b0e7ad5d984e9e115a089f15f1110f1a7f7d7702eb6850
[INFO] running `Command { std: "docker" "start" "-a" "35fa3a011513fc6b96b0e7ad5d984e9e115a089f15f1110f1a7f7d7702eb6850", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.78
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling rustix v0.38.31
[INFO] [stderr]    Compiling log v0.4.20
[INFO] [stderr]    Compiling anyhow v1.0.79
[INFO] [stderr]    Compiling bitflags v2.4.2
[INFO] [stderr]    Compiling linux-raw-sys v0.4.13
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling bytes v1.5.0
[INFO] [stderr]    Compiling fastrand v2.0.1
[INFO] [stderr]    Compiling unicode-segmentation v1.10.1
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]     Checking value-bag v1.7.0
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]     Checking futures-task v0.3.30
[INFO] [stderr]    Compiling thiserror v1.0.56
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking subtle v2.5.0
[INFO] [stderr]     Checking smallvec v1.13.1
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]    Compiling petgraph v0.5.1
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling serde v1.0.196
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]    Compiling toml_datetime v0.6.5
[INFO] [stderr]    Compiling winnow v0.5.37
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]    Compiling pin-project-internal v0.4.30
[INFO] [stderr]     Checking data-encoding v2.5.0
[INFO] [stderr]     Checking crypto-mac v0.8.0
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]    Compiling libsecp256k1-core v0.2.2
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]     Checking signature v1.6.4
[INFO] [stderr]     Checking hmac v0.8.1
[INFO] [stderr]     Checking url v2.5.0
[INFO] [stderr]     Checking hmac-drbg v0.3.0
[INFO] [stderr]     Checking ed25519 v1.5.3
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]     Checking asn1_der v0.7.6
[INFO] [stderr]    Compiling libsecp256k1-gen-genmult v0.2.1
[INFO] [stderr]    Compiling syn v2.0.48
[INFO] [stderr]    Compiling libsecp256k1-gen-ecmult v0.2.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking parking v2.2.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]    Compiling libsecp256k1 v0.5.0
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]    Compiling rustix v0.37.27
[INFO] [stderr]    Compiling indexmap v2.2.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]     Checking waker-fn v1.1.1
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.90
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]     Checking futures-lite v2.2.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking concurrent-queue v2.4.0
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking event-listener v4.0.3
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling memchr v2.7.1
[INFO] [stderr]    Compiling pkg-config v0.3.29
[INFO] [stderr]     Checking event-listener-strategy v0.4.0
[INFO] [stderr]    Compiling bumpalo v3.14.0
[INFO] [stderr]    Compiling async-trait v0.1.77
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling tempfile v3.9.0
[INFO] [stderr]     Checking async-lock v3.3.0
[INFO] [stderr]     Checking async-task v4.7.0
[INFO] [stderr]     Checking async-channel v2.1.1
[INFO] [stderr]     Checking piper v0.2.1
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]    Compiling ahash v0.7.7
[INFO] [stderr]    Compiling wasm-bindgen v0.2.90
[INFO] [stderr]     Checking match_cfg v0.1.0
[INFO] [stderr]    Compiling prost-build v0.8.0
[INFO] [stderr]     Checking regex-syntax v0.8.2
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling libz-sys v1.1.15
[INFO] [stderr]     Checking hostname v0.3.1
[INFO] [stderr]     Checking async-channel v1.9.0
[INFO] [stderr]     Checking kv-log-macro v1.0.7
[INFO] [stderr]     Checking lru-cache v0.1.2
[INFO] [stderr]     Checking resolv-conf v0.7.0
[INFO] [stderr]     Checking sha-1 v0.9.8
[INFO] [stderr]     Checking cipher v0.3.0
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking mio v0.8.10
[INFO] [stderr]     Checking socket2 v0.5.5
[INFO] [stderr]     Checking keccak v0.1.5
[INFO] [stderr]     Checking blocking v1.5.1
[INFO] [stderr]     Checking async-executor v1.8.0
[INFO] [stderr]     Checking quicksink v0.1.2
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking salsa20 v0.8.1
[INFO] [stderr]     Checking uint v0.9.5
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]     Checking dns-parser v0.8.0
[INFO] [stderr]     Checking sha3 v0.9.1
[INFO] [stderr]     Checking cuckoofilter v0.5.0
[INFO] [stderr]     Checking if-addrs v0.6.7
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]    Compiling serde_json v1.0.113
[INFO] [stderr]     Checking atomic v0.5.3
[INFO] [stderr]     Checking ryu v1.0.16
[INFO] [stderr]     Checking lru v0.6.6
[INFO] [stderr]     Checking if-watch v0.2.2
[INFO] [stderr]     Checking regex-automata v0.4.5
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking webpki v0.21.4
[INFO] [stderr]     Checking sct v0.6.1
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.90
[INFO] [stderr]     Checking rustls v0.19.1
[INFO] [stderr]     Checking webpki-roots v0.21.1
[INFO] [stderr]    Compiling prost-derive v0.8.0
[INFO] [stderr]    Compiling enum-as-inner v0.3.4
[INFO] [stderr]    Compiling minicbor-derive v0.6.4
[INFO] [stderr]    Compiling libp2p-swarm-derive v0.24.0
[INFO] [stderr]    Compiling multihash-derive v0.7.2
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling thiserror-impl v1.0.56
[INFO] [stderr]    Compiling serde_derive v1.0.196
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling pin-project-internal v1.1.4
[INFO] [stderr]    Compiling tokio-macros v2.2.0
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.90
[INFO] [stderr]     Checking futures-rustls v0.21.1
[INFO] [stderr]     Checking zeroize v1.3.0
[INFO] [stderr]     Checking tokio v1.36.0
[INFO] [stderr]     Checking curve25519-dalek v3.2.1
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking pin-project v0.4.30
[INFO] [stderr]     Checking pretty_env_logger v0.4.0
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]    Compiling pest v2.7.6
[INFO] [stderr]     Checking polling v3.3.2
[INFO] [stderr]     Checking pin-project v1.1.4
[INFO] [stderr]    Compiling prost v0.8.0
[INFO] [stderr]     Checking minicbor v0.8.1
[INFO] [stderr]     Checking async-io v2.3.1
[INFO] [stderr]     Checking x25519-dalek v1.2.0
[INFO] [stderr]    Compiling prost-types v0.8.0
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.90
[INFO] [stderr]     Checking async-global-executor v2.4.1
[INFO] [stderr]     Checking async-std v1.12.0
[INFO] [stderr]    Compiling semver-parser v0.10.2
[INFO] [stderr]     Checking js-sys v0.3.67
[INFO] [stderr]    Compiling semver v0.11.0
[INFO] [stderr]    Compiling rustc_version v0.3.3
[INFO] [stderr]    Compiling snow v0.8.0
[INFO] [stderr]    Compiling libp2p-core v0.29.0
[INFO] [stderr]    Compiling libp2p-gossipsub v0.32.0
[INFO] [stderr]    Compiling libp2p-kad v0.31.0
[INFO] [stderr]    Compiling libp2p-plaintext v0.29.0
[INFO] [stderr]    Compiling libp2p-floodsub v0.30.0
[INFO] [stderr]    Compiling libp2p-noise v0.32.0
[INFO] [stderr]    Compiling libp2p-identify v0.30.0
[INFO] [stderr]    Compiling libp2p-relay v0.3.0
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking asynchronous-codec v0.6.2
[INFO] [stderr]     Checking trust-dns-proto v0.20.4
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]     Checking rw-stream-sink v0.2.1
[INFO] [stderr]     Checking wasm-timer v0.2.5
[INFO] [stderr]     Checking yamux v0.9.0
[INFO] [stderr]     Checking soketto v0.4.2
[INFO] [stderr]     Checking libp2p-pnet v0.21.0
[INFO] [stderr]     Checking unsigned-varint v0.7.2
[INFO] [stderr]     Checking multihash v0.14.0
[INFO] [stderr]     Checking multistream-select v0.10.4
[INFO] [stderr]     Checking ed25519-dalek v1.0.1
[INFO] [stderr]     Checking multiaddr v0.13.0
[INFO] [stderr]     Checking trust-dns-resolver v0.20.4
[INFO] [stderr]     Checking wasm-bindgen-futures v0.4.40
[INFO] [stderr]     Checking async-std-resolver v0.20.4
[INFO] [stderr]     Checking libp2p-swarm v0.30.0
[INFO] [stderr]     Checking libp2p-websocket v0.30.0
[INFO] [stderr]     Checking libp2p-deflate v0.29.0
[INFO] [stderr]     Checking libp2p-dns v0.29.0
[INFO] [stderr]     Checking libp2p-yamux v0.33.0
[INFO] [stderr]     Checking libp2p-wasm-ext v0.29.0
[INFO] [stderr]     Checking libp2p-tcp v0.29.0
[INFO] [stderr]     Checking libp2p-mplex v0.29.0
[INFO] [stderr]     Checking libp2p-uds v0.29.0
[INFO] [stderr]     Checking libp2p-mdns v0.31.0
[INFO] [stderr]     Checking libp2p-request-response v0.12.0
[INFO] [stderr]     Checking libp2p-ping v0.30.0
[INFO] [stderr]     Checking libp2p v0.39.1
[INFO] [stderr]     Checking rust-p2p-example v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |     /// We initialize logging and create an async channel to communicate between different parts of the application.
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 78 |     pretty_env_logger::init();
[INFO] [stdout]    |     ------------------------- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |       /// A transport is a set of network protocols that enables connection-oriented communication between peers.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 88 | /     let transp = TokioTcpConfig::new()
[INFO] [stdout] 89 | |         .upgrade(upgrade::Version::V1)
[INFO] [stdout] 90 | |         .authenticate(NoiseConfig::xx(auth_keys).into_authenticated())
[INFO] [stdout] 91 | |         .multiplex(mplex::MplexConfig::new())
[INFO] [stdout] 92 | |         .boxed();
[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:94:5
[INFO] [stdout]     |
[INFO] [stdout]  94 |       /// The next concept is a NetworkBehaviour. This is the part within libp2p that actually defines the logic of the network and all peers.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  95 | /     let mut behaviour = RecipeBehaviour {
[INFO] [stdout]  96 | |         floodsub: Floodsub::new(PEER_ID.clone()),
[INFO] [stdout]  97 | |         mdns: Mdns::new(Default::default())
[INFO] [stdout]  98 | |             .await
[INFO] [stdout]  99 | |             .expect("can create mdns"),
[INFO] [stdout] 100 | |         response_sender,
[INFO] [stdout] 101 | |     };
[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:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |       /// A Swarm manages the connections created using the transport and executes the network behavior we created, triggering and receiving events
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 | /     let mut swarm = SwarmBuilder::new(transp, behaviour, PEER_ID.clone())
[INFO] [stdout] 111 | |         .executor(Box::new(|fut| {
[INFO] [stdout] 112 | |             tokio::spawn(fut);
[INFO] [stdout] 113 | |         }))
[INFO] [stdout] 114 | |         .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:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |       /// and giving us a way to get to them from the outside.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 | /     let mut swarm = SwarmBuilder::new(transp, behaviour, PEER_ID.clone())
[INFO] [stdout] 111 | |         .executor(Box::new(|fut| {
[INFO] [stdout] 112 | |             tokio::spawn(fut);
[INFO] [stdout] 113 | |         }))
[INFO] [stdout] 114 | |         .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:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 |       ///
[INFO] [stdout]     |       ^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 | /     let mut swarm = SwarmBuilder::new(transp, behaviour, PEER_ID.clone())
[INFO] [stdout] 111 | |         .executor(Box::new(|fut| {
[INFO] [stdout] 112 | |             tokio::spawn(fut);
[INFO] [stdout] 113 | |         }))
[INFO] [stdout] 114 | |         .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:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |       /// We create the Swarm with our transport, behavior, and peer ID. The executor part simply tells the Swarm to use the Tokio runtime to run 
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 109 |       /// internally, but we could also use other async runtimes here.
[INFO] [stdout] 110 | /     let mut swarm = SwarmBuilder::new(transp, behaviour, PEER_ID.clone())
[INFO] [stdout] 111 | |         .executor(Box::new(|fut| {
[INFO] [stdout] 112 | |             tokio::spawn(fut);
[INFO] [stdout] 113 | |         }))
[INFO] [stdout] 114 | |         .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 |       /// internally, but we could also use other async runtimes here.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 | /     let mut swarm = SwarmBuilder::new(transp, behaviour, PEER_ID.clone())
[INFO] [stdout] 111 | |         .executor(Box::new(|fut| {
[INFO] [stdout] 112 | |             tokio::spawn(fut);
[INFO] [stdout] 113 | |         }))
[INFO] [stdout] 114 | |         .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:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 |     /// defined an async reader on STDIN, which reads the stream line by line.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 117 |     /// So if we press enter, there will be a new incoming message.
[INFO] [stdout] 118 |     let mut stdin = tokio::io::BufReader::new(tokio::io::stdin()).lines();
[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:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     /// So if we press enter, there will be a new incoming message.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 118 |     let mut stdin = tokio::io::BufReader::new(tokio::io::stdin()).lines();
[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:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |       /// The only thing left to do is to start our Swarm
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 121 | /     Swarm::listen_on(
[INFO] [stdout] 122 | |         &mut swarm,
[INFO] [stdout] 123 | |         "/ip4/0.0.0.0/tcp/0"
[INFO] [stdout] 124 | |             .parse()
[INFO] [stdout] ...   |
[INFO] [stdout] 127 | |     .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 doc comment
[INFO] [stdout]    --> src/main.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 129 |       /// The next part is to create our event loop, which will listen to events from STDIN, from the Swarm, and from our response channel defined above.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 130 | /     loop {
[INFO] [stdout] 131 | |         let evt = {
[INFO] [stdout] 132 | |             tokio::select! {
[INFO] [stdout] 133 | |                 line = stdin.next_line() => Some(EventType::Input(line.expect("can get line").expect("can read line from stdin"))),
[INFO] [stdout] ...   |
[INFO] [stdout] 171 | |     }
[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 doc comment
[INFO] [stdout]    --> src/main.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 | /         /// Let's add some event handling logic:
[INFO] [stdout] 143 | |         ///
[INFO] [stdout] 144 | |         /// If there is an event, we match on it and see if it’s a Response or an Input event. Let’s look at the Input events only for now.
[INFO] [stdout] 145 | |         ///
[INFO] [stdout] ...   |
[INFO] [stdout] 151 | |         /// publish r {recipeId} publishes a given recipe
[INFO] [stdout] 152 | |         /// create r {recipeName}|{recipeIngredients}|{recipeInstructions creates a new recipe with the given data and an incrementing ID
[INFO] [stdout]     | |_________________________________________________________________________________________________________________________________________^
[INFO] [stdout] 153 | /         if let Some(event) = evt {
[INFO] [stdout] 154 | |             match event {
[INFO] [stdout] 155 | |                 EventType::Response(resp) => {
[INFO] [stdout] 156 | |                     let json = serde_json::to_string(&resp).expect("can jsonify response");
[INFO] [stdout] ...   |
[INFO] [stdout] 170 | |         }
[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 doc comment
[INFO] [stdout]   --> src/main.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |     /// We initialize logging and create an async channel to communicate between different parts of the application.
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 78 |     pretty_env_logger::init();
[INFO] [stdout]    |     ------------------------- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |       /// A transport is a set of network protocols that enables connection-oriented communication between peers.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 88 | /     let transp = TokioTcpConfig::new()
[INFO] [stdout] 89 | |         .upgrade(upgrade::Version::V1)
[INFO] [stdout] 90 | |         .authenticate(NoiseConfig::xx(auth_keys).into_authenticated())
[INFO] [stdout] 91 | |         .multiplex(mplex::MplexConfig::new())
[INFO] [stdout] 92 | |         .boxed();
[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:94:5
[INFO] [stdout]     |
[INFO] [stdout]  94 |       /// The next concept is a NetworkBehaviour. This is the part within libp2p that actually defines the logic of the network and all peers.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  95 | /     let mut behaviour = RecipeBehaviour {
[INFO] [stdout]  96 | |         floodsub: Floodsub::new(PEER_ID.clone()),
[INFO] [stdout]  97 | |         mdns: Mdns::new(Default::default())
[INFO] [stdout]  98 | |             .await
[INFO] [stdout]  99 | |             .expect("can create mdns"),
[INFO] [stdout] 100 | |         response_sender,
[INFO] [stdout] 101 | |     };
[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:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |       /// A Swarm manages the connections created using the transport and executes the network behavior we created, triggering and receiving events
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 | /     let mut swarm = SwarmBuilder::new(transp, behaviour, PEER_ID.clone())
[INFO] [stdout] 111 | |         .executor(Box::new(|fut| {
[INFO] [stdout] 112 | |             tokio::spawn(fut);
[INFO] [stdout] 113 | |         }))
[INFO] [stdout] 114 | |         .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:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |       /// and giving us a way to get to them from the outside.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 | /     let mut swarm = SwarmBuilder::new(transp, behaviour, PEER_ID.clone())
[INFO] [stdout] 111 | |         .executor(Box::new(|fut| {
[INFO] [stdout] 112 | |             tokio::spawn(fut);
[INFO] [stdout] 113 | |         }))
[INFO] [stdout] 114 | |         .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:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 |       ///
[INFO] [stdout]     |       ^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 | /     let mut swarm = SwarmBuilder::new(transp, behaviour, PEER_ID.clone())
[INFO] [stdout] 111 | |         .executor(Box::new(|fut| {
[INFO] [stdout] 112 | |             tokio::spawn(fut);
[INFO] [stdout] 113 | |         }))
[INFO] [stdout] 114 | |         .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:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |       /// We create the Swarm with our transport, behavior, and peer ID. The executor part simply tells the Swarm to use the Tokio runtime to run 
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 109 |       /// internally, but we could also use other async runtimes here.
[INFO] [stdout] 110 | /     let mut swarm = SwarmBuilder::new(transp, behaviour, PEER_ID.clone())
[INFO] [stdout] 111 | |         .executor(Box::new(|fut| {
[INFO] [stdout] 112 | |             tokio::spawn(fut);
[INFO] [stdout] 113 | |         }))
[INFO] [stdout] 114 | |         .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 |       /// internally, but we could also use other async runtimes here.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 | /     let mut swarm = SwarmBuilder::new(transp, behaviour, PEER_ID.clone())
[INFO] [stdout] 111 | |         .executor(Box::new(|fut| {
[INFO] [stdout] 112 | |             tokio::spawn(fut);
[INFO] [stdout] 113 | |         }))
[INFO] [stdout] 114 | |         .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:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 |     /// defined an async reader on STDIN, which reads the stream line by line.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 117 |     /// So if we press enter, there will be a new incoming message.
[INFO] [stdout] 118 |     let mut stdin = tokio::io::BufReader::new(tokio::io::stdin()).lines();
[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:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     /// So if we press enter, there will be a new incoming message.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 118 |     let mut stdin = tokio::io::BufReader::new(tokio::io::stdin()).lines();
[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:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |       /// The only thing left to do is to start our Swarm
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 121 | /     Swarm::listen_on(
[INFO] [stdout] 122 | |         &mut swarm,
[INFO] [stdout] 123 | |         "/ip4/0.0.0.0/tcp/0"
[INFO] [stdout] 124 | |             .parse()
[INFO] [stdout] ...   |
[INFO] [stdout] 127 | |     .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 doc comment
[INFO] [stdout]    --> src/main.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 129 |       /// The next part is to create our event loop, which will listen to events from STDIN, from the Swarm, and from our response channel defined above.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 130 | /     loop {
[INFO] [stdout] 131 | |         let evt = {
[INFO] [stdout] 132 | |             tokio::select! {
[INFO] [stdout] 133 | |                 line = stdin.next_line() => Some(EventType::Input(line.expect("can get line").expect("can read line from stdin"))),
[INFO] [stdout] ...   |
[INFO] [stdout] 171 | |     }
[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 doc comment
[INFO] [stdout]    --> src/main.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 | /         /// Let's add some event handling logic:
[INFO] [stdout] 143 | |         ///
[INFO] [stdout] 144 | |         /// If there is an event, we match on it and see if it’s a Response or an Input event. Let’s look at the Input events only for now.
[INFO] [stdout] 145 | |         ///
[INFO] [stdout] ...   |
[INFO] [stdout] 151 | |         /// publish r {recipeId} publishes a given recipe
[INFO] [stdout] 152 | |         /// create r {recipeName}|{recipeIngredients}|{recipeInstructions creates a new recipe with the given data and an incrementing ID
[INFO] [stdout]     | |_________________________________________________________________________________________________________________________________________^
[INFO] [stdout] 153 | /         if let Some(event) = evt {
[INFO] [stdout] 154 | |             match event {
[INFO] [stdout] 155 | |                 EventType::Response(resp) => {
[INFO] [stdout] 156 | |                     let json = serde_json::to_string(&resp).expect("can jsonify response");
[INFO] [stdout] ...   |
[INFO] [stdout] 170 | |         }
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 26s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: snow v0.8.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 6`
[INFO] running `Command { std: "docker" "inspect" "35fa3a011513fc6b96b0e7ad5d984e9e115a089f15f1110f1a7f7d7702eb6850", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "35fa3a011513fc6b96b0e7ad5d984e9e115a089f15f1110f1a7f7d7702eb6850", kill_on_drop: false }`
[INFO] [stdout] 35fa3a011513fc6b96b0e7ad5d984e9e115a089f15f1110f1a7f7d7702eb6850
