[INFO] cloning repository https://github.com/GeoffClements/Storm [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/GeoffClements/Storm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGeoffClements%2FStorm", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGeoffClements%2FStorm'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0a7873f9c67845513d9e5c5fe3b3453d4a1aabad [INFO] linting GeoffClements/Storm against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGeoffClements%2FStorm" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/GeoffClements/Storm [INFO] finished tweaking git repo https://github.com/GeoffClements/Storm [INFO] tweaked toml for git repo https://github.com/GeoffClements/Storm written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/GeoffClements/Storm on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/GeoffClements/Storm 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tokio-signal v0.2.7 [INFO] [stderr] Downloaded tokio-executor v0.1.8 [INFO] [stderr] Downloaded autocfg v0.1.5 [INFO] [stderr] Downloaded signal-hook-registry v1.1.1 [INFO] [stderr] Downloaded muldiv v0.2.0 [INFO] [stderr] Downloaded thread-control v0.1.2 [INFO] [stderr] Downloaded actix_derive v0.4.0 [INFO] [stderr] Downloaded actix-threadpool v0.1.2 [INFO] [stderr] Downloaded actix-rt v0.2.4 [INFO] [stderr] Downloaded pkg-config v0.3.15 [INFO] [stderr] Downloaded signal-hook v0.1.10 [INFO] [stderr] Downloaded copyless v0.1.4 [INFO] [stderr] Downloaded derive_more v0.15.0 [INFO] [stderr] Downloaded derive_more v0.14.1 [INFO] [stderr] Downloaded tokio-current-thread v0.1.6 [INFO] [stderr] Downloaded lock_api v0.3.1 [INFO] [stderr] Downloaded mac_address v1.0.0 [INFO] [stderr] Downloaded hashbrown v0.3.1 [INFO] [stderr] Downloaded actix v0.8.3 [INFO] [stderr] Downloaded glib-sys v0.9.0 [INFO] [stderr] Downloaded tokio-threadpool v0.1.15 [INFO] [stderr] Downloaded glib v0.8.1 [INFO] [stderr] Downloaded aho-corasick v0.7.6 [INFO] [stderr] Downloaded futures v0.1.28 [INFO] [stderr] Downloaded gstreamer v0.14.4 [INFO] [stderr] Downloaded nix v0.11.1 [INFO] [stderr] Downloaded gstreamer-sys v0.8.0 [INFO] [stderr] Downloaded parking_lot_core v0.5.0 [INFO] [stderr] Downloaded regex v1.2.1 [INFO] [stderr] Downloaded fern v0.5.8 [INFO] [stderr] Downloaded regex-syntax v0.6.11 [INFO] [stderr] Downloaded parking_lot v0.8.0 [INFO] [stderr] Downloaded cc v1.0.40 [INFO] [stderr] Downloaded tokio-timer v0.2.11 [INFO] [stderr] Downloaded arc-swap v0.4.2 [INFO] [stderr] Downloaded tokio-sync v0.1.6 [INFO] [stderr] Downloaded lock_api v0.2.0 [INFO] [stderr] Downloaded gobject-sys v0.9.0 [INFO] [stderr] Downloaded num-rational v0.2.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] cf0a646151ddcbbbdc46349ccddb567a8da1102519b2fcad9c26d47423ab4f25 [INFO] running `Command { std: "docker" "start" "-a" "cf0a646151ddcbbbdc46349ccddb567a8da1102519b2fcad9c26d47423ab4f25", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cf0a646151ddcbbbdc46349ccddb567a8da1102519b2fcad9c26d47423ab4f25", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cf0a646151ddcbbbdc46349ccddb567a8da1102519b2fcad9c26d47423ab4f25", kill_on_drop: false }` [INFO] [stdout] cf0a646151ddcbbbdc46349ccddb567a8da1102519b2fcad9c26d47423ab4f25 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 60610624f690d0ed2f3173e12d9f9ace66758a1ccb0079819ac6c2b9bb5e568e [INFO] running `Command { std: "docker" "start" "-a" "60610624f690d0ed2f3173e12d9f9ace66758a1ccb0079819ac6c2b9bb5e568e", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Compiling libc v0.2.62 [INFO] [stderr] Compiling autocfg v0.1.5 [INFO] [stderr] Checking cfg-if v0.1.9 [INFO] [stderr] Checking rand_core v0.4.2 [INFO] [stderr] Checking lazy_static v1.3.0 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Checking futures v0.1.28 [INFO] [stderr] Checking smallvec v0.6.10 [INFO] [stderr] Compiling byteorder v1.3.2 [INFO] [stderr] Checking slab v0.4.2 [INFO] [stderr] Checking scopeguard v1.0.0 [INFO] [stderr] Compiling pkg-config v0.3.15 [INFO] [stderr] Compiling memchr v2.2.1 [INFO] [stderr] Compiling parking_lot_core v0.4.0 [INFO] [stderr] Compiling memoffset v0.5.1 [INFO] [stderr] Compiling bitflags v1.1.0 [INFO] [stderr] Compiling arrayvec v0.4.11 [INFO] [stderr] Checking crossbeam-utils v0.6.6 [INFO] [stderr] Checking nodrop v0.1.13 [INFO] [stderr] Compiling parking_lot_core v0.6.2 [INFO] [stderr] Checking rand_core v0.3.1 [INFO] [stderr] Checking rand_jitter v0.1.4 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Checking rand_isaac v0.1.1 [INFO] [stderr] Checking rand_xorshift v0.1.1 [INFO] [stderr] Checking rand_hc v0.1.0 [INFO] [stderr] Compiling thread_local v0.3.6 [INFO] [stderr] Compiling num-traits v0.2.8 [INFO] [stderr] Compiling parking_lot v0.9.0 [INFO] [stderr] Compiling regex-syntax v0.6.11 [INFO] [stderr] Checking crossbeam-queue v0.1.2 [INFO] [stderr] Compiling num-integer v0.1.41 [INFO] [stderr] Checking lock_api v0.3.1 [INFO] [stderr] Checking rand_os v0.1.3 [INFO] [stderr] Checking iovec v0.1.2 [INFO] [stderr] Checking num_cpus v1.10.1 [INFO] [stderr] Checking net2 v0.2.33 [INFO] [stderr] Compiling parking_lot_core v0.5.0 [INFO] [stderr] Checking bytes v0.4.12 [INFO] [stderr] Checking threadpool v1.7.1 [INFO] [stderr] Compiling num-rational v0.2.2 [INFO] [stderr] Compiling parking_lot v0.8.0 [INFO] [stderr] Compiling glib-sys v0.9.0 [INFO] [stderr] Compiling gobject-sys v0.9.0 [INFO] [stderr] Checking mio v0.6.19 [INFO] [stderr] Compiling gstreamer-sys v0.8.0 [INFO] [stderr] Compiling aho-corasick v0.7.6 [INFO] [stderr] Checking crossbeam-epoch v0.7.2 [INFO] [stderr] Checking arc-swap v0.4.2 [INFO] [stderr] Compiling nix v0.11.1 [INFO] [stderr] Checking term_size v0.3.1 [INFO] [stderr] Checking lock_api v0.2.0 [INFO] [stderr] Checking unicode-width v0.1.5 [INFO] [stderr] Compiling gstreamer v0.14.4 [INFO] [stderr] Checking copyless v0.1.4 [INFO] [stderr] Compiling mac_address v1.0.0 [INFO] [stderr] Checking crossbeam-channel v0.3.9 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Compiling derive_more v0.14.1 [INFO] [stderr] Compiling actix_derive v0.4.0 [INFO] [stderr] Checking crossbeam-deque v0.7.1 [INFO] [stderr] Checking muldiv v0.2.0 [INFO] [stderr] Checking signal-hook-registry v1.1.1 [INFO] [stderr] Checking scoped-tls v0.1.2 [INFO] [stderr] Checking mio-uds v0.6.7 [INFO] [stderr] Checking signal-hook v0.1.10 [INFO] [stderr] Checking hashbrown v0.3.1 [INFO] [stderr] Checking clap v2.33.0 [INFO] [stderr] Checking fern v0.5.8 [INFO] [stderr] Checking thread-control v0.1.2 [INFO] [stderr] Checking tokio-executor v0.1.8 [INFO] [stderr] Checking tokio-io v0.1.12 [INFO] [stderr] Checking tokio-sync v0.1.6 [INFO] [stderr] Checking glib v0.8.1 [INFO] [stderr] Checking tokio-timer v0.2.11 [INFO] [stderr] Checking tokio-current-thread v0.1.6 [INFO] [stderr] Checking tokio-threadpool v0.1.15 [INFO] [stderr] Checking tokio-codec v0.1.1 [INFO] [stderr] Checking parking_lot v0.7.1 [INFO] [stderr] Compiling regex v1.2.1 [INFO] [stderr] Checking tokio-fs v0.1.6 [INFO] [stderr] Checking tokio-reactor v0.1.9 [INFO] [stderr] Checking tokio-udp v0.1.3 [INFO] [stderr] Checking tokio-uds v0.2.5 [INFO] [stderr] Checking tokio-tcp v0.1.3 [INFO] [stderr] Checking tokio-signal v0.2.7 [INFO] [stderr] Checking tokio v0.1.22 [INFO] [stderr] Checking tokio-core v0.1.17 [INFO] [stderr] Compiling derive_more v0.15.0 [INFO] [stderr] Checking actix-threadpool v0.1.2 [INFO] [stderr] Checking actix-rt v0.2.4 [INFO] [stderr] Checking actix v0.8.3 [INFO] [stderr] Checking storm v0.4.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: the `msg @ _` pattern can be written as just `msg` [INFO] [stdout] --> src/codec.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | msg @ _ => Ok(Some(msg)), [INFO] [stdout] | ^^^^^^^ help: try: `msg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/codec.rs:258:29 [INFO] [stdout] | [INFO] [stdout] 258 | ... replay_gain: replay_gain, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `replay_gain` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/codec.rs:261:29 [INFO] [stdout] | [INFO] [stdout] 261 | ... http_headers: http_headers, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `http_headers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `cmd @ _` pattern can be written as just `cmd` [INFO] [stdout] --> src/codec.rs:282:21 [INFO] [stdout] | [INFO] [stdout] 282 | cmd @ _ => { [INFO] [stdout] | ^^^^^^^ help: try: `cmd` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `cmd @ _` pattern can be written as just `cmd` [INFO] [stdout] --> src/codec.rs:310:13 [INFO] [stdout] | [INFO] [stdout] 310 | cmd @ _ => ServerMessage::Unrecognised(cmd.to_owned()), [INFO] [stdout] | ^^^^^^^ help: try: `cmd` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/player.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | device: device, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `device` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/player.rs:65:21 [INFO] [stdout] | [INFO] [stdout] 65 | device: device, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `device` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/player.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | output_device: output_device, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_device` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/player.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | proto: proto, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `proto` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/proto.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | mac: mac, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `mac` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/proto.rs:354:25 [INFO] [stdout] | [INFO] [stdout] 354 | server_ip: server_ip, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `server_ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/proto.rs:355:25 [INFO] [stdout] | [INFO] [stdout] 355 | name: name, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/proto.rs:356:25 [INFO] [stdout] | [INFO] [stdout] 356 | output_device: output_device, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_device` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/main.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | const VERSION: &'static str = "0.4.2"; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `e @ _` pattern can be written as just `e` [INFO] [stdout] --> src/main.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | e @ _ => error!("Storm error {:?}", e), [INFO] [stdout] | ^^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `msg @ _` pattern can be written as just `msg` [INFO] [stdout] --> src/codec.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | msg @ _ => Ok(Some(msg)), [INFO] [stdout] | ^^^^^^^ help: try: `msg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/codec.rs:258:29 [INFO] [stdout] | [INFO] [stdout] 258 | ... replay_gain: replay_gain, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `replay_gain` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/codec.rs:261:29 [INFO] [stdout] | [INFO] [stdout] 261 | ... http_headers: http_headers, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `http_headers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `cmd @ _` pattern can be written as just `cmd` [INFO] [stdout] --> src/codec.rs:282:21 [INFO] [stdout] | [INFO] [stdout] 282 | cmd @ _ => { [INFO] [stdout] | ^^^^^^^ help: try: `cmd` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `cmd @ _` pattern can be written as just `cmd` [INFO] [stdout] --> src/codec.rs:310:13 [INFO] [stdout] | [INFO] [stdout] 310 | cmd @ _ => ServerMessage::Unrecognised(cmd.to_owned()), [INFO] [stdout] | ^^^^^^^ help: try: `cmd` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/player.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | device: device, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `device` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/player.rs:65:21 [INFO] [stdout] | [INFO] [stdout] 65 | device: device, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `device` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/player.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | output_device: output_device, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_device` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/player.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | proto: proto, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `proto` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/proto.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | mac: mac, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `mac` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/proto.rs:354:25 [INFO] [stdout] | [INFO] [stdout] 354 | server_ip: server_ip, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `server_ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/proto.rs:355:25 [INFO] [stdout] | [INFO] [stdout] 355 | name: name, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/proto.rs:356:25 [INFO] [stdout] | [INFO] [stdout] 356 | output_device: output_device, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_device` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/main.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | const VERSION: &'static str = "0.4.2"; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `e @ _` pattern can be written as just `e` [INFO] [stdout] --> src/main.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | e @ _ => error!("Storm error {:?}", e), [INFO] [stdout] | ^^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/codec.rs:290:45 [INFO] [stdout] | [INFO] [stdout] 290 | "aude" => ServerMessage::Enable(!(src[1].into_buf().get_u8() == 0)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(src[1].into_buf().get_u8() != 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/codec.rs:219:41 [INFO] [stdout] | [INFO] [stdout] 219 | let sync_group = if src.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!src.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/codec.rs:250:39 [INFO] [stdout] | [INFO] [stdout] 250 | ... src[24..].into_iter().map(|c| *c as char).collect() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/codec.rs:299:49 [INFO] [stdout] | [INFO] [stdout] 299 | let name: String = src[1..].into_iter().map(|c| *c as char).collect(); [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/player.rs:37:6 [INFO] [stdout] | [INFO] [stdout] 37 | impl<'a> From> for AudioDevice { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 37 - impl<'a> From> for AudioDevice { [INFO] [stdout] 37 + impl From> for AudioDevice { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/player.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 40 | if v.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `v.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/player.rs:224:17 [INFO] [stdout] | [INFO] [stdout] 224 | / if let gst::PadProbeData::Event(event) = probe_data { [INFO] [stdout] 225 | | if event.get_type() == gst::EventType::StreamStart { [INFO] [stdout] 226 | | proto.do_send(PlayerMessages::Start); [INFO] [stdout] 227 | | } [INFO] [stdout] 228 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/player.rs:223:25 [INFO] [stdout] | [INFO] [stdout] 223 | if let Some(ref probe_data) = probe_info.data { [INFO] [stdout] | ^^^^^^^^^^^^^^ replace this binding [INFO] [stdout] 224 | if let gst::PadProbeData::Event(event) = probe_data { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/player.rs:331:29 [INFO] [stdout] | [INFO] [stdout] 331 | / ... if statechange.get_current() == gst::State::Null { [INFO] [stdout] 332 | | ... if let Some(bin_obj) = msg.get_src() { [INFO] [stdout] 333 | | ... if bin_obj.has_as_parent(&pipeline) [INFO] [stdout] 334 | | ... && bin_obj.get_name().starts_with("storm_") [INFO] [stdout] ... | [INFO] [stdout] 352 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 330 ~ MessageView::StateChanged(statechange) [INFO] [stdout] 331 ~ if statechange.get_current() == gst::State::Null => { [INFO] [stdout] 332 | if let Some(bin_obj) = msg.get_src() { [INFO] [stdout] ... [INFO] [stdout] 351 | } [INFO] [stdout] 352 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/player.rs:557:20 [INFO] [stdout] | [INFO] [stdout] 557 | if !self.pipeline.set_state(gst::State::Paused).is_err() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.pipeline.set_state(gst::State::Paused).is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/player.rs:566:20 [INFO] [stdout] | [INFO] [stdout] 566 | if !self.pipeline.set_state(gst::State::Playing).is_err() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.pipeline.set_state(gst::State::Playing).is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/player.rs:412:21 [INFO] [stdout] | [INFO] [stdout] 412 | / match self.pipeline.get_state(gst::ClockTime::none()) { [INFO] [stdout] 413 | | (Ok(gst::StateChangeSuccess::Success), _, gst::State::VoidPending) => false, [INFO] [stdout] 414 | | _ => true, [INFO] [stdout] 415 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 412 - match self.pipeline.get_state(gst::ClockTime::none()) { [INFO] [stdout] 413 - (Ok(gst::StateChangeSuccess::Success), _, gst::State::VoidPending) => false, [INFO] [stdout] 414 - _ => true, [INFO] [stdout] 415 - } [INFO] [stdout] 412 + !matches!(self.pipeline.get_state(gst::ClockTime::none()), (Ok(gst::StateChangeSuccess::Success), _, gst::State::VoidPending)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/player.rs:485:29 [INFO] [stdout] | [INFO] [stdout] 485 | / ... if let gst::PadProbeData::Event(event) = probe_data { [INFO] [stdout] 486 | | ... if event.get_type() == gst::EventType::Eos { [INFO] [stdout] 487 | | ... proto.do_send(PlayerMessages::Eos); [INFO] [stdout] 488 | | ... } [INFO] [stdout] 489 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/player.rs:484:37 [INFO] [stdout] | [INFO] [stdout] 484 | if let Some(ref probe_data) = probe_info.data { [INFO] [stdout] | ^^^^^^^^^^^^^^ replace this binding [INFO] [stdout] 485 | if let gst::PadProbeData::Event(event) = probe_data { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/player.rs:524:33 [INFO] [stdout] | [INFO] [stdout] 524 | / ... if let gst::PadProbeData::Event(event) = probe_data { [INFO] [stdout] 525 | | ... if event.get_type() == gst::EventType::Eos { [INFO] [stdout] 526 | | ... let strc = gst::Structure::new_empty("delete"); [INFO] [stdout] 527 | | ... let msg = gst::Message::new_application(strc) [INFO] [stdout] ... | [INFO] [stdout] 532 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/player.rs:523:41 [INFO] [stdout] | [INFO] [stdout] 523 | ... if let Some(ref probe_data) = info.data { [INFO] [stdout] | ^^^^^^^^^^^^^^ replace this binding [INFO] [stdout] 524 | ... if let gst::PadProbeData::Event(event) = probe_data { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/player.rs:557:17 [INFO] [stdout] | [INFO] [stdout] 557 | / if !self.pipeline.set_state(gst::State::Paused).is_err() { [INFO] [stdout] 558 | | if !quiet { [INFO] [stdout] 559 | | self.proto.do_send(PlayerMessages::Paused); [INFO] [stdout] 560 | | } [INFO] [stdout] 561 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 557 ~ if !self.pipeline.set_state(gst::State::Paused).is_err() [INFO] [stdout] 558 ~ && !quiet { [INFO] [stdout] 559 | self.proto.do_send(PlayerMessages::Paused); [INFO] [stdout] 560 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/player.rs:566:17 [INFO] [stdout] | [INFO] [stdout] 566 | / if !self.pipeline.set_state(gst::State::Playing).is_err() { [INFO] [stdout] 567 | | if !quiet { [INFO] [stdout] 568 | | self.proto.do_send(PlayerMessages::Unpaused); [INFO] [stdout] 569 | | } [INFO] [stdout] 570 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 566 ~ if !self.pipeline.set_state(gst::State::Playing).is_err() [INFO] [stdout] 567 ~ && !quiet { [INFO] [stdout] 568 | self.proto.do_send(PlayerMessages::Unpaused); [INFO] [stdout] 569 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/proto.rs:317:65 [INFO] [stdout] | [INFO] [stdout] 317 | ((dur.as_secs() * 1000 + dur.subsec_millis() as u64) % (::std::u32::MAX as u64 + 1)) as u32 [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 317 - ((dur.as_secs() * 1000 + dur.subsec_millis() as u64) % (::std::u32::MAX as u64 + 1)) as u32 [INFO] [stdout] 317 + ((dur.as_secs() * 1000 + dur.subsec_millis() as u64) % (u32::MAX as u64 + 1)) as u32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/codec.rs:290:45 [INFO] [stdout] | [INFO] [stdout] 290 | "aude" => ServerMessage::Enable(!(src[1].into_buf().get_u8() == 0)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(src[1].into_buf().get_u8() != 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/codec.rs:219:41 [INFO] [stdout] | [INFO] [stdout] 219 | let sync_group = if src.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!src.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/codec.rs:250:39 [INFO] [stdout] | [INFO] [stdout] 250 | ... src[24..].into_iter().map(|c| *c as char).collect() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/codec.rs:299:49 [INFO] [stdout] | [INFO] [stdout] 299 | let name: String = src[1..].into_iter().map(|c| *c as char).collect(); [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/player.rs:37:6 [INFO] [stdout] | [INFO] [stdout] 37 | impl<'a> From> for AudioDevice { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 37 - impl<'a> From> for AudioDevice { [INFO] [stdout] 37 + impl From> for AudioDevice { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/player.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 40 | if v.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `v.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/player.rs:224:17 [INFO] [stdout] | [INFO] [stdout] 224 | / if let gst::PadProbeData::Event(event) = probe_data { [INFO] [stdout] 225 | | if event.get_type() == gst::EventType::StreamStart { [INFO] [stdout] 226 | | proto.do_send(PlayerMessages::Start); [INFO] [stdout] 227 | | } [INFO] [stdout] 228 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/player.rs:223:25 [INFO] [stdout] | [INFO] [stdout] 223 | if let Some(ref probe_data) = probe_info.data { [INFO] [stdout] | ^^^^^^^^^^^^^^ replace this binding [INFO] [stdout] 224 | if let gst::PadProbeData::Event(event) = probe_data { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/player.rs:331:29 [INFO] [stdout] | [INFO] [stdout] 331 | / ... if statechange.get_current() == gst::State::Null { [INFO] [stdout] 332 | | ... if let Some(bin_obj) = msg.get_src() { [INFO] [stdout] 333 | | ... if bin_obj.has_as_parent(&pipeline) [INFO] [stdout] 334 | | ... && bin_obj.get_name().starts_with("storm_") [INFO] [stdout] ... | [INFO] [stdout] 352 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 330 ~ MessageView::StateChanged(statechange) [INFO] [stdout] 331 ~ if statechange.get_current() == gst::State::Null => { [INFO] [stdout] 332 | if let Some(bin_obj) = msg.get_src() { [INFO] [stdout] ... [INFO] [stdout] 351 | } [INFO] [stdout] 352 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/player.rs:557:20 [INFO] [stdout] | [INFO] [stdout] 557 | if !self.pipeline.set_state(gst::State::Paused).is_err() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.pipeline.set_state(gst::State::Paused).is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/player.rs:566:20 [INFO] [stdout] | [INFO] [stdout] 566 | if !self.pipeline.set_state(gst::State::Playing).is_err() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.pipeline.set_state(gst::State::Playing).is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/player.rs:412:21 [INFO] [stdout] | [INFO] [stdout] 412 | / match self.pipeline.get_state(gst::ClockTime::none()) { [INFO] [stdout] 413 | | (Ok(gst::StateChangeSuccess::Success), _, gst::State::VoidPending) => false, [INFO] [stdout] 414 | | _ => true, [INFO] [stdout] 415 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 412 - match self.pipeline.get_state(gst::ClockTime::none()) { [INFO] [stdout] 413 - (Ok(gst::StateChangeSuccess::Success), _, gst::State::VoidPending) => false, [INFO] [stdout] 414 - _ => true, [INFO] [stdout] 415 - } [INFO] [stdout] 412 + !matches!(self.pipeline.get_state(gst::ClockTime::none()), (Ok(gst::StateChangeSuccess::Success), _, gst::State::VoidPending)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/player.rs:485:29 [INFO] [stdout] | [INFO] [stdout] 485 | / ... if let gst::PadProbeData::Event(event) = probe_data { [INFO] [stdout] 486 | | ... if event.get_type() == gst::EventType::Eos { [INFO] [stdout] 487 | | ... proto.do_send(PlayerMessages::Eos); [INFO] [stdout] 488 | | ... } [INFO] [stdout] 489 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/player.rs:484:37 [INFO] [stdout] | [INFO] [stdout] 484 | if let Some(ref probe_data) = probe_info.data { [INFO] [stdout] | ^^^^^^^^^^^^^^ replace this binding [INFO] [stdout] 485 | if let gst::PadProbeData::Event(event) = probe_data { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/player.rs:524:33 [INFO] [stdout] | [INFO] [stdout] 524 | / ... if let gst::PadProbeData::Event(event) = probe_data { [INFO] [stdout] 525 | | ... if event.get_type() == gst::EventType::Eos { [INFO] [stdout] 526 | | ... let strc = gst::Structure::new_empty("delete"); [INFO] [stdout] 527 | | ... let msg = gst::Message::new_application(strc) [INFO] [stdout] ... | [INFO] [stdout] 532 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/player.rs:523:41 [INFO] [stdout] | [INFO] [stdout] 523 | ... if let Some(ref probe_data) = info.data { [INFO] [stdout] | ^^^^^^^^^^^^^^ replace this binding [INFO] [stdout] 524 | ... if let gst::PadProbeData::Event(event) = probe_data { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/player.rs:557:17 [INFO] [stdout] | [INFO] [stdout] 557 | / if !self.pipeline.set_state(gst::State::Paused).is_err() { [INFO] [stdout] 558 | | if !quiet { [INFO] [stdout] 559 | | self.proto.do_send(PlayerMessages::Paused); [INFO] [stdout] 560 | | } [INFO] [stdout] 561 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 557 ~ if !self.pipeline.set_state(gst::State::Paused).is_err() [INFO] [stdout] 558 ~ && !quiet { [INFO] [stdout] 559 | self.proto.do_send(PlayerMessages::Paused); [INFO] [stdout] 560 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/player.rs:566:17 [INFO] [stdout] | [INFO] [stdout] 566 | / if !self.pipeline.set_state(gst::State::Playing).is_err() { [INFO] [stdout] 567 | | if !quiet { [INFO] [stdout] 568 | | self.proto.do_send(PlayerMessages::Unpaused); [INFO] [stdout] 569 | | } [INFO] [stdout] 570 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 566 ~ if !self.pipeline.set_state(gst::State::Playing).is_err() [INFO] [stdout] 567 ~ && !quiet { [INFO] [stdout] 568 | self.proto.do_send(PlayerMessages::Unpaused); [INFO] [stdout] 569 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/proto.rs:317:65 [INFO] [stdout] | [INFO] [stdout] 317 | ((dur.as_secs() * 1000 + dur.subsec_millis() as u64) % (::std::u32::MAX as u64 + 1)) as u32 [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 317 - ((dur.as_secs() * 1000 + dur.subsec_millis() as u64) % (::std::u32::MAX as u64 + 1)) as u32 [INFO] [stdout] 317 + ((dur.as_secs() * 1000 + dur.subsec_millis() as u64) % (u32::MAX as u64 + 1)) as u32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.42s [INFO] running `Command { std: "docker" "inspect" "60610624f690d0ed2f3173e12d9f9ace66758a1ccb0079819ac6c2b9bb5e568e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "60610624f690d0ed2f3173e12d9f9ace66758a1ccb0079819ac6c2b9bb5e568e", kill_on_drop: false }` [INFO] [stdout] 60610624f690d0ed2f3173e12d9f9ace66758a1ccb0079819ac6c2b9bb5e568e