[INFO] fetching crate ds1090 0.2.11... [INFO] linting ds1090-0.2.11 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate ds1090 0.2.11 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate ds1090 0.2.11 [INFO] finished tweaking crates.io crate ds1090 0.2.11 [INFO] tweaked toml for crates.io crate ds1090 0.2.11 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate ds1090 0.2.11 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 crates.io crate ds1090 0.2.11 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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tokio-util v0.3.1 [INFO] [stderr] Downloaded uuid v0.8.1 [INFO] [stderr] Downloaded slab v0.4.2 [INFO] [stderr] Downloaded tokio-macros v0.2.6 [INFO] [stderr] Downloaded pin-project-lite v0.1.11 [INFO] [stderr] Downloaded byteorder v1.3.4 [INFO] [stderr] Downloaded toml v0.5.7 [INFO] [stderr] Downloaded libmath v0.1.4 [INFO] [stderr] Downloaded signal-hook v0.1.16 [INFO] [stderr] Downloaded pin-project-internal v1.0.1 [INFO] [stderr] Downloaded time v0.1.44 [INFO] [stderr] Downloaded zmq v0.9.2 [INFO] [stderr] Downloaded mio v0.6.22 [INFO] [stderr] Downloaded backtrace v0.3.54 [INFO] [stderr] Downloaded once_cell v1.5.2 [INFO] [stderr] Downloaded pin-project v1.0.1 [INFO] [stderr] Downloaded object v0.22.0 [INFO] [stderr] Downloaded rmp-serde v0.14.4 [INFO] [stderr] Downloaded futures v0.3.8 [INFO] [stderr] Downloaded futures-util v0.3.8 [INFO] [stderr] Downloaded bytes v0.5.6 [INFO] [stderr] Downloaded fern v0.6.0 [INFO] [stderr] Downloaded socket2 v0.3.16 [INFO] [stderr] Downloaded tokio v0.2.23 [INFO] [stderr] Downloaded futures v0.1.30 [INFO] [stderr] Downloaded log v0.4.11 [INFO] [stderr] Downloaded miow v0.2.1 [INFO] [stderr] Downloaded miow v0.3.5 [INFO] [stderr] Downloaded async-zmq-types v0.3.2 [INFO] [stderr] Downloaded tokio-zmq v0.10.1 [INFO] [stderr] Downloaded addr2line v0.14.0 [INFO] [stderr] Downloaded rustc-demangle v0.1.18 [INFO] [stderr] Downloaded synstructure v0.12.4 [INFO] [stderr] Downloaded futures-executor v0.3.8 [INFO] [stderr] Downloaded futures-channel v0.3.8 [INFO] [stderr] Downloaded futures-macro v0.3.8 [INFO] [stderr] Downloaded proc-macro-hack v0.5.19 [INFO] [stderr] Downloaded futures-io v0.3.8 [INFO] [stderr] Downloaded futures-sink v0.3.8 [INFO] [stderr] Downloaded futures-core v0.3.8 [INFO] [stderr] Downloaded memchr v2.3.4 [INFO] [stderr] Downloaded mio-named-pipes v0.1.7 [INFO] [stderr] Downloaded net2 v0.2.35 [INFO] [stderr] Downloaded rmp v0.8.9 [INFO] [stderr] Downloaded gimli v0.23.0 [INFO] [stderr] Downloaded datastreamcorelib v0.5.1 [INFO] [stderr] Downloaded async-zmq-derive v0.1.0 [INFO] [stderr] Downloaded smallvec v0.6.13 [INFO] [stderr] Downloaded parking_lot_core v0.6.2 [INFO] [stderr] Downloaded pkg-config v0.3.19 [INFO] [stderr] Downloaded zmq-sys v0.11.0 [INFO] [stderr] Downloaded datastreamservicelib v0.6.0 [INFO] [stderr] Downloaded adler v0.2.3 [INFO] [stderr] Downloaded futures-task v0.3.8 [INFO] [stderr] Downloaded proc-macro-nested v0.1.6 [INFO] [stderr] Downloaded toml v0.2.1 [INFO] [stderr] Downloaded metadeps v1.1.2 [INFO] [stderr] Downloaded miniz_oxide v0.4.3 [INFO] [stderr] Downloaded signal-hook-registry v1.2.2 [INFO] [stderr] Downloaded getrandom v0.1.15 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] f1ef25a862d49b63340802470a34b5a571b189e57233ed3f179167a642e8a96a [INFO] running `Command { std: "docker" "start" "-a" "f1ef25a862d49b63340802470a34b5a571b189e57233ed3f179167a642e8a96a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f1ef25a862d49b63340802470a34b5a571b189e57233ed3f179167a642e8a96a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f1ef25a862d49b63340802470a34b5a571b189e57233ed3f179167a642e8a96a", kill_on_drop: false }` [INFO] [stdout] f1ef25a862d49b63340802470a34b5a571b189e57233ed3f179167a642e8a96a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 2b06f60df4293fdac91f02faa33e8990671d9281ebb5cfd739e5a33a81822e7d [INFO] running `Command { std: "docker" "start" "-a" "2b06f60df4293fdac91f02faa33e8990671d9281ebb5cfd739e5a33a81822e7d", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.80 [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling syn v1.0.48 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Checking slab v0.4.2 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling toml v0.2.1 [INFO] [stderr] Compiling error-chain v0.10.0 [INFO] [stderr] Compiling pkg-config v0.3.19 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Checking futures v0.1.30 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling getrandom v0.1.15 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Checking adler v0.2.3 [INFO] [stderr] Checking futures-core v0.3.8 [INFO] [stderr] Checking gimli v0.23.0 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling proc-macro-hack v0.5.19 [INFO] [stderr] Checking smallvec v0.6.13 [INFO] [stderr] Checking rustc-demangle v0.1.18 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling metadeps v1.1.2 [INFO] [stderr] Compiling miniz_oxide v0.4.3 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Checking futures-sink v0.3.8 [INFO] [stderr] Compiling zmq v0.9.2 [INFO] [stderr] Checking object v0.22.0 [INFO] [stderr] Compiling proc-macro-nested v0.1.6 [INFO] [stderr] Compiling parking_lot_core v0.6.2 [INFO] [stderr] Compiling parking_lot v0.9.0 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Compiling zmq-sys v0.11.0 [INFO] [stderr] Checking net2 v0.2.35 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking bytes v0.4.12 [INFO] [stderr] Checking lock_api v0.3.4 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Checking ppv-lite86 v0.2.10 [INFO] [stderr] Checking once_cell v1.5.2 [INFO] [stderr] Checking futures-io v0.3.8 [INFO] [stderr] Checking mio v0.6.22 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Checking futures-task v0.3.8 [INFO] [stderr] Checking signal-hook-registry v1.2.2 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking futures-channel v0.3.8 [INFO] [stderr] Checking bytes v0.5.6 [INFO] [stderr] Checking time v0.1.44 [INFO] [stderr] Checking unicode-width v0.1.8 [INFO] [stderr] Checking pin-project-lite v0.1.11 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking fern v0.6.0 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking tokio-executor v0.1.10 [INFO] [stderr] Checking tokio-sync v0.1.8 [INFO] [stderr] Checking tokio-io v0.1.13 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking tokio-timer v0.2.13 [INFO] [stderr] Checking base64 v0.12.3 [INFO] [stderr] Checking mio-uds v0.6.8 [INFO] [stderr] Checking ansi_term v0.11.0 [INFO] [stderr] Checking rand v0.3.23 [INFO] [stderr] Checking strsim v0.8.0 [INFO] [stderr] Checking libmath v0.1.4 [INFO] [stderr] Checking tokio-reactor v0.1.12 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Checking signal-hook v0.1.16 [INFO] [stderr] Checking rmp v0.8.9 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Compiling async-zmq-derive v0.1.0 [INFO] [stderr] Checking addr2line v0.14.0 [INFO] [stderr] Checking backtrace v0.3.54 [INFO] [stderr] Compiling synstructure v0.12.4 [INFO] [stderr] Compiling serde_derive v1.0.117 [INFO] [stderr] Compiling pin-project-internal v1.0.1 [INFO] [stderr] Compiling futures-macro v0.3.8 [INFO] [stderr] Compiling tokio-macros v0.2.6 [INFO] [stderr] Checking tokio v0.2.23 [INFO] [stderr] Checking failure v0.1.8 [INFO] [stderr] Checking async-zmq-types v0.3.2 [INFO] [stderr] Checking tokio-zmq v0.10.1 [INFO] [stderr] Checking pin-project v1.0.1 [INFO] [stderr] Checking futures-util v0.3.8 [INFO] [stderr] Checking serde v1.0.117 [INFO] [stderr] Checking tokio-util v0.3.1 [INFO] [stderr] Checking futures-executor v0.3.8 [INFO] [stderr] Checking futures v0.3.8 [INFO] [stderr] Checking serde_json v1.0.59 [INFO] [stderr] Checking uuid v0.8.1 [INFO] [stderr] Checking rmp-serde v0.14.4 [INFO] [stderr] Checking toml v0.5.7 [INFO] [stderr] Checking datastreamcorelib v0.5.1 [INFO] [stderr] Checking datastreamservicelib v0.6.0 [INFO] [stderr] Checking ds1090 v0.2.11 (/opt/rustwide/workdir) [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/flight/mod.rs:29:18 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn valid(self: &Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] = note: `#[warn(clippy::needless_arbitrary_self_type)]` on by default [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 29 - pub fn valid(self: &Self) -> bool { [INFO] [stdout] 29 + pub fn valid(&self) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/flight/mod.rs:33:17 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn uniq(self: &Self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 33 - pub fn uniq(self: &Self) -> u64 { [INFO] [stdout] 33 + pub fn uniq(&self) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/flight/mod.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn json(self: &Self) -> serde_json::Value { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 41 - pub fn json(self: &Self) -> serde_json::Value { [INFO] [stdout] 41 + pub fn json(&self) -> serde_json::Value { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/flight/mod.rs:164:13 [INFO] [stdout] | [INFO] [stdout] 164 | uuid: uuid, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `uuid` [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: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/flight/mod.rs:169:18 [INFO] [stdout] | [INFO] [stdout] 169 | pub fn reset(self: &mut Self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 169 - pub fn reset(self: &mut Self) { [INFO] [stdout] 169 + pub fn reset(&mut self) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/flight/mod.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | self: &mut Self, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 175 - self: &mut Self, [INFO] [stdout] 175 + &mut self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/flight/mod.rs:307:13 [INFO] [stdout] | [INFO] [stdout] 307 | required_fields: required_fields, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `required_fields` [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 type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/flight/mod.rs:311:19 [INFO] [stdout] | [INFO] [stdout] 311 | pub fn update(self: &mut Self, mut message: &mut Message) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 311 - pub fn update(self: &mut Self, mut message: &mut Message) -> Option { [INFO] [stdout] 311 + pub fn update(&mut self, mut message: &mut Message) -> Option { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/lib.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | use log; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/lib.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | use tokio_util; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/lib.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | use toml; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/lib.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 211 | use toml; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/flight/mod.rs:29:18 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn valid(self: &Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] = note: `#[warn(clippy::needless_arbitrary_self_type)]` on by default [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 29 - pub fn valid(self: &Self) -> bool { [INFO] [stdout] 29 + pub fn valid(&self) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/flight/mod.rs:33:17 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn uniq(self: &Self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 33 - pub fn uniq(self: &Self) -> u64 { [INFO] [stdout] 33 + pub fn uniq(&self) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/flight/mod.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn json(self: &Self) -> serde_json::Value { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 41 - pub fn json(self: &Self) -> serde_json::Value { [INFO] [stdout] 41 + pub fn json(&self) -> serde_json::Value { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/flight/mod.rs:164:13 [INFO] [stdout] | [INFO] [stdout] 164 | uuid: uuid, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `uuid` [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: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/flight/mod.rs:169:18 [INFO] [stdout] | [INFO] [stdout] 169 | pub fn reset(self: &mut Self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 169 - pub fn reset(self: &mut Self) { [INFO] [stdout] 169 + pub fn reset(&mut self) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/flight/mod.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | self: &mut Self, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 175 - self: &mut Self, [INFO] [stdout] 175 + &mut self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/flight/mod.rs:307:13 [INFO] [stdout] | [INFO] [stdout] 307 | required_fields: required_fields, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `required_fields` [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 type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/flight/mod.rs:311:19 [INFO] [stdout] | [INFO] [stdout] 311 | pub fn update(self: &mut Self, mut message: &mut Message) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 311 - pub fn update(self: &mut Self, mut message: &mut Message) -> Option { [INFO] [stdout] 311 + pub fn update(&mut self, mut message: &mut Message) -> Option { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/lib.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | use log; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/lib.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | use tokio_util; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/lib.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | use toml; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/defaultconfig.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | / return String::from( [INFO] [stdout] 4 | | r###" [INFO] [stdout] 5 | | [zmq] [INFO] [stdout] 6 | | pub_sockets = ["ipc:///tmp/ds1090_pub.sock", "tcp://*:62624"] [INFO] [stdout] ... | [INFO] [stdout] 18 | | .trim() [INFO] [stdout] 19 | | .to_string(); [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 3 ~ String::from( [INFO] [stdout] 4 + r###" [INFO] [stdout] 5 + [zmq] [INFO] [stdout] 6 + pub_sockets = ["ipc:///tmp/ds1090_pub.sock", "tcp://*:62624"] [INFO] [stdout] 7 + [INFO] [stdout] 8 + [process] [INFO] [stdout] 9 + track = true [INFO] [stdout] 10 + required_fields = ["received", "callsign", "altitude", "ground_speed", "heading", "latitude", "longitude"] [INFO] [stdout] 11 + turnaround = 900 [INFO] [stdout] 12 + [INFO] [stdout] 13 + [dump1090] [INFO] [stdout] 14 + host = "127.0.0.1" [INFO] [stdout] 15 + port = 30003 [INFO] [stdout] 16 + "###, [INFO] [stdout] 17 + ) [INFO] [stdout] 18 + .trim() [INFO] [stdout] 19 ~ .to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/defaultconfig.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | / return String::from( [INFO] [stdout] 4 | | r###" [INFO] [stdout] 5 | | [zmq] [INFO] [stdout] 6 | | pub_sockets = ["ipc:///tmp/ds1090_pub.sock", "tcp://*:62624"] [INFO] [stdout] ... | [INFO] [stdout] 18 | | .trim() [INFO] [stdout] 19 | | .to_string(); [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 3 ~ String::from( [INFO] [stdout] 4 + r###" [INFO] [stdout] 5 + [zmq] [INFO] [stdout] 6 + pub_sockets = ["ipc:///tmp/ds1090_pub.sock", "tcp://*:62624"] [INFO] [stdout] 7 + [INFO] [stdout] 8 + [process] [INFO] [stdout] 9 + track = true [INFO] [stdout] 10 + required_fields = ["received", "callsign", "altitude", "ground_speed", "heading", "latitude", "longitude"] [INFO] [stdout] 11 + turnaround = 900 [INFO] [stdout] 12 + [INFO] [stdout] 13 + [dump1090] [INFO] [stdout] 14 + host = "127.0.0.1" [INFO] [stdout] 15 + port = 30003 [INFO] [stdout] 16 + "###, [INFO] [stdout] 17 + ) [INFO] [stdout] 18 + .trim() [INFO] [stdout] 19 ~ .to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:83:27 [INFO] [stdout] | [INFO] [stdout] 83 | message.msgtype = match fields[1].parse::() { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 84 | | Ok(value) => Some(value), [INFO] [stdout] 85 | | Err(_) => None, [INFO] [stdout] 86 | | }; [INFO] [stdout] | |_________^ help: replace with: `fields[1].parse::().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:87:27 [INFO] [stdout] | [INFO] [stdout] 87 | message.address = match u32::from_str_radix(&fields[4], 16) { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 88 | | Ok(address) => Some(address), [INFO] [stdout] 89 | | Err(_) => None, [INFO] [stdout] 90 | | }; [INFO] [stdout] | |_________^ help: replace with: `u32::from_str_radix(&fields[4], 16).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/flight/mod.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 100 | if fields[10].len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!fields[10].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: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:83:27 [INFO] [stdout] | [INFO] [stdout] 83 | message.msgtype = match fields[1].parse::() { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 84 | | Ok(value) => Some(value), [INFO] [stdout] 85 | | Err(_) => None, [INFO] [stdout] 86 | | }; [INFO] [stdout] | |_________^ help: replace with: `fields[1].parse::().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:87:27 [INFO] [stdout] | [INFO] [stdout] 87 | message.address = match u32::from_str_radix(&fields[4], 16) { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 88 | | Ok(address) => Some(address), [INFO] [stdout] 89 | | Err(_) => None, [INFO] [stdout] 90 | | }; [INFO] [stdout] | |_________^ help: replace with: `u32::from_str_radix(&fields[4], 16).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/flight/mod.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 100 | if fields[10].len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!fields[10].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: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:105:28 [INFO] [stdout] | [INFO] [stdout] 105 | message.altitude = match i32::from_str(&fields[11]) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 106 | | Ok(value) => Some(value), [INFO] [stdout] 107 | | Err(_) => None, [INFO] [stdout] 108 | | }; [INFO] [stdout] | |_________^ help: replace with: `i32::from_str(&fields[11]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:109:32 [INFO] [stdout] | [INFO] [stdout] 109 | message.ground_speed = match i32::from_str(&fields[12]) { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 110 | | Ok(value) => Some(value), [INFO] [stdout] 111 | | Err(_) => None, [INFO] [stdout] 112 | | }; [INFO] [stdout] | |_________^ help: replace with: `i32::from_str(&fields[12]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:105:28 [INFO] [stdout] | [INFO] [stdout] 105 | message.altitude = match i32::from_str(&fields[11]) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 106 | | Ok(value) => Some(value), [INFO] [stdout] 107 | | Err(_) => None, [INFO] [stdout] 108 | | }; [INFO] [stdout] | |_________^ help: replace with: `i32::from_str(&fields[11]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:113:27 [INFO] [stdout] | [INFO] [stdout] 113 | message.heading = match u16::from_str(&fields[13]) { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 114 | | Ok(value) => Some(value), [INFO] [stdout] 115 | | Err(_) => None, [INFO] [stdout] 116 | | }; [INFO] [stdout] | |_________^ help: replace with: `u16::from_str(&fields[13]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:117:33 [INFO] [stdout] | [INFO] [stdout] 117 | message.vertical_rate = match i32::from_str(&fields[16]) { [INFO] [stdout] | _________________________________^ [INFO] [stdout] 118 | | Ok(value) => Some(value), [INFO] [stdout] 119 | | Err(_) => None, [INFO] [stdout] 120 | | }; [INFO] [stdout] | |_________^ help: replace with: `i32::from_str(&fields[16]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:109:32 [INFO] [stdout] | [INFO] [stdout] 109 | message.ground_speed = match i32::from_str(&fields[12]) { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 110 | | Ok(value) => Some(value), [INFO] [stdout] 111 | | Err(_) => None, [INFO] [stdout] 112 | | }; [INFO] [stdout] | |_________^ help: replace with: `i32::from_str(&fields[12]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:113:27 [INFO] [stdout] | [INFO] [stdout] 113 | message.heading = match u16::from_str(&fields[13]) { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 114 | | Ok(value) => Some(value), [INFO] [stdout] 115 | | Err(_) => None, [INFO] [stdout] 116 | | }; [INFO] [stdout] | |_________^ help: replace with: `u16::from_str(&fields[13]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:117:33 [INFO] [stdout] | [INFO] [stdout] 117 | message.vertical_rate = match i32::from_str(&fields[16]) { [INFO] [stdout] | _________________________________^ [INFO] [stdout] 118 | | Ok(value) => Some(value), [INFO] [stdout] 119 | | Err(_) => None, [INFO] [stdout] 120 | | }; [INFO] [stdout] | |_________^ help: replace with: `i32::from_str(&fields[16]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:121:28 [INFO] [stdout] | [INFO] [stdout] 121 | message.latitude = match f32::from_str(&fields[14]) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 122 | | Ok(value) => Some(value), [INFO] [stdout] 123 | | Err(_) => None, [INFO] [stdout] 124 | | }; [INFO] [stdout] | |_________^ help: replace with: `f32::from_str(&fields[14]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:125:29 [INFO] [stdout] | [INFO] [stdout] 125 | message.longitude = match f32::from_str(&fields[15]) { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 126 | | Ok(value) => Some(value), [INFO] [stdout] 127 | | Err(_) => None, [INFO] [stdout] 128 | | }; [INFO] [stdout] | |_________^ help: replace with: `f32::from_str(&fields[15]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:129:26 [INFO] [stdout] | [INFO] [stdout] 129 | message.squawk = match u16::from_str_radix(&fields[17], 8) { [INFO] [stdout] | __________________________^ [INFO] [stdout] 130 | | Ok(squawk) => Some(squawk), [INFO] [stdout] 131 | | Err(_) => None, [INFO] [stdout] 132 | | }; [INFO] [stdout] | |_________^ help: replace with: `u16::from_str_radix(&fields[17], 8).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:133:33 [INFO] [stdout] | [INFO] [stdout] 133 | message.squawk_change = match i8::from_str(&fields[18]) { [INFO] [stdout] | _________________________________^ [INFO] [stdout] 134 | | Ok(value) => Some(value), [INFO] [stdout] 135 | | Err(_) => None, [INFO] [stdout] 136 | | }; [INFO] [stdout] | |_________^ help: replace with: `i8::from_str(&fields[18]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:121:28 [INFO] [stdout] | [INFO] [stdout] 121 | message.latitude = match f32::from_str(&fields[14]) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 122 | | Ok(value) => Some(value), [INFO] [stdout] 123 | | Err(_) => None, [INFO] [stdout] 124 | | }; [INFO] [stdout] | |_________^ help: replace with: `f32::from_str(&fields[14]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:125:29 [INFO] [stdout] | [INFO] [stdout] 125 | message.longitude = match f32::from_str(&fields[15]) { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 126 | | Ok(value) => Some(value), [INFO] [stdout] 127 | | Err(_) => None, [INFO] [stdout] 128 | | }; [INFO] [stdout] | |_________^ help: replace with: `f32::from_str(&fields[15]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:129:26 [INFO] [stdout] | [INFO] [stdout] 129 | message.squawk = match u16::from_str_radix(&fields[17], 8) { [INFO] [stdout] | __________________________^ [INFO] [stdout] 130 | | Ok(squawk) => Some(squawk), [INFO] [stdout] 131 | | Err(_) => None, [INFO] [stdout] 132 | | }; [INFO] [stdout] | |_________^ help: replace with: `u16::from_str_radix(&fields[17], 8).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:133:33 [INFO] [stdout] | [INFO] [stdout] 133 | message.squawk_change = match i8::from_str(&fields[18]) { [INFO] [stdout] | _________________________________^ [INFO] [stdout] 134 | | Ok(value) => Some(value), [INFO] [stdout] 135 | | Err(_) => None, [INFO] [stdout] 136 | | }; [INFO] [stdout] | |_________^ help: replace with: `i8::from_str(&fields[18]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:137:32 [INFO] [stdout] | [INFO] [stdout] 137 | message.squawk_alert = match i8::from_str(&fields[19]) { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 138 | | Ok(value) => Some(value), [INFO] [stdout] 139 | | Err(_) => None, [INFO] [stdout] 140 | | }; [INFO] [stdout] | |_________^ help: replace with: `i8::from_str(&fields[19]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:141:32 [INFO] [stdout] | [INFO] [stdout] 141 | message.squawk_ident = match i8::from_str(&fields[20]) { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 142 | | Ok(value) => Some(value), [INFO] [stdout] 143 | | Err(_) => None, [INFO] [stdout] 144 | | }; [INFO] [stdout] | |_________^ help: replace with: `i8::from_str(&fields[20]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:145:29 [INFO] [stdout] | [INFO] [stdout] 145 | message.on_ground = match i8::from_str(&fields[21]) { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 146 | | Ok(value) => Some(value), [INFO] [stdout] 147 | | Err(_) => None, [INFO] [stdout] 148 | | }; [INFO] [stdout] | |_________^ help: replace with: `i8::from_str(&fields[21]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:137:32 [INFO] [stdout] | [INFO] [stdout] 137 | message.squawk_alert = match i8::from_str(&fields[19]) { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 138 | | Ok(value) => Some(value), [INFO] [stdout] 139 | | Err(_) => None, [INFO] [stdout] 140 | | }; [INFO] [stdout] | |_________^ help: replace with: `i8::from_str(&fields[19]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:141:32 [INFO] [stdout] | [INFO] [stdout] 141 | message.squawk_ident = match i8::from_str(&fields[20]) { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 142 | | Ok(value) => Some(value), [INFO] [stdout] 143 | | Err(_) => None, [INFO] [stdout] 144 | | }; [INFO] [stdout] | |_________^ help: replace with: `i8::from_str(&fields[20]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Flight` [INFO] [stdout] --> src/flight/mod.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | / pub fn new() -> Self { [INFO] [stdout] 162 | | let uuid = Uuid::new_v4(); [INFO] [stdout] 163 | | Flight { [INFO] [stdout] 164 | | uuid: uuid, [INFO] [stdout] ... | [INFO] [stdout] 167 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 160 + impl Default for Flight { [INFO] [stdout] 161 + fn default() -> Self { [INFO] [stdout] 162 + Self::new() [INFO] [stdout] 163 + } [INFO] [stdout] 164 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/flight/mod.rs:145:29 [INFO] [stdout] | [INFO] [stdout] 145 | message.on_ground = match i8::from_str(&fields[21]) { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 146 | | Ok(value) => Some(value), [INFO] [stdout] 147 | | Err(_) => None, [INFO] [stdout] 148 | | }; [INFO] [stdout] | |_________^ help: replace with: `i8::from_str(&fields[21]).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Flight` [INFO] [stdout] --> src/flight/mod.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | / pub fn new() -> Self { [INFO] [stdout] 162 | | let uuid = Uuid::new_v4(); [INFO] [stdout] 163 | | Flight { [INFO] [stdout] 164 | | uuid: uuid, [INFO] [stdout] ... | [INFO] [stdout] 167 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 160 + impl Default for Flight { [INFO] [stdout] 161 + fn default() -> Self { [INFO] [stdout] 162 + Self::new() [INFO] [stdout] 163 + } [INFO] [stdout] 164 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/flight/mod.rs:185:64 [INFO] [stdout] | [INFO] [stdout] 185 | if required_fields.contains(&"msgtype".to_string()) && !self.values.msgtype.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.msgtype.is_some()` [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: this boolean expression can be simplified [INFO] [stdout] --> src/flight/mod.rs:191:64 [INFO] [stdout] | [INFO] [stdout] 191 | if required_fields.contains(&"address".to_string()) && !self.values.address.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.address.is_some()` [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/flight/mod.rs:197:67 [INFO] [stdout] | [INFO] [stdout] 197 | if required_fields.contains(&"systemtime".to_string()) && !self.values.systemtime.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.systemtime.is_some()` [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/flight/mod.rs:204:65 [INFO] [stdout] | [INFO] [stdout] 204 | if required_fields.contains(&"received".to_string()) && !self.values.received.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.received.is_some()` [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/flight/mod.rs:210:65 [INFO] [stdout] | [INFO] [stdout] 210 | if required_fields.contains(&"callsign".to_string()) && !self.values.callsign.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.callsign.is_some()` [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/flight/mod.rs:216:65 [INFO] [stdout] | [INFO] [stdout] 216 | if required_fields.contains(&"altitude".to_string()) && !self.values.altitude.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.altitude.is_some()` [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/flight/mod.rs:223:16 [INFO] [stdout] | [INFO] [stdout] 223 | && !self.values.ground_speed.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.ground_speed.is_some()` [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/flight/mod.rs:230:64 [INFO] [stdout] | [INFO] [stdout] 230 | if required_fields.contains(&"heading".to_string()) && !self.values.heading.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.heading.is_some()` [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/flight/mod.rs:236:65 [INFO] [stdout] | [INFO] [stdout] 236 | if required_fields.contains(&"latitude".to_string()) && !self.values.latitude.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.latitude.is_some()` [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/flight/mod.rs:242:66 [INFO] [stdout] | [INFO] [stdout] 242 | if required_fields.contains(&"longitude".to_string()) && !self.values.longitude.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.longitude.is_some()` [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/flight/mod.rs:249:16 [INFO] [stdout] | [INFO] [stdout] 249 | && !self.values.vertical_rate.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.vertical_rate.is_some()` [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/flight/mod.rs:256:63 [INFO] [stdout] | [INFO] [stdout] 256 | if required_fields.contains(&"squawk".to_string()) && !self.values.squawk.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.squawk.is_some()` [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/flight/mod.rs:263:16 [INFO] [stdout] | [INFO] [stdout] 263 | && !self.values.squawk_change.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.squawk_change.is_some()` [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/flight/mod.rs:271:16 [INFO] [stdout] | [INFO] [stdout] 271 | && !self.values.squawk_alert.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.squawk_alert.is_some()` [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/flight/mod.rs:279:16 [INFO] [stdout] | [INFO] [stdout] 279 | && !self.values.squawk_ident.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.squawk_ident.is_some()` [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/flight/mod.rs:286:66 [INFO] [stdout] | [INFO] [stdout] 286 | if required_fields.contains(&"on_ground".to_string()) && !self.values.on_ground.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.on_ground.is_some()` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/flight/mod.rs:177:26 [INFO] [stdout] | [INFO] [stdout] 177 | required_fields: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 177 - required_fields: &Vec, [INFO] [stdout] 177 + required_fields: &[String], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/flight/mod.rs:185:64 [INFO] [stdout] | [INFO] [stdout] 185 | if required_fields.contains(&"msgtype".to_string()) && !self.values.msgtype.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.msgtype.is_some()` [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: this boolean expression can be simplified [INFO] [stdout] --> src/flight/mod.rs:191:64 [INFO] [stdout] | [INFO] [stdout] 191 | if required_fields.contains(&"address".to_string()) && !self.values.address.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.address.is_some()` [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/flight/mod.rs:197:67 [INFO] [stdout] | [INFO] [stdout] 197 | if required_fields.contains(&"systemtime".to_string()) && !self.values.systemtime.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.systemtime.is_some()` [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/flight/mod.rs:204:65 [INFO] [stdout] | [INFO] [stdout] 204 | if required_fields.contains(&"received".to_string()) && !self.values.received.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.received.is_some()` [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/flight/mod.rs:210:65 [INFO] [stdout] | [INFO] [stdout] 210 | if required_fields.contains(&"callsign".to_string()) && !self.values.callsign.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.callsign.is_some()` [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/flight/mod.rs:216:65 [INFO] [stdout] | [INFO] [stdout] 216 | if required_fields.contains(&"altitude".to_string()) && !self.values.altitude.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.altitude.is_some()` [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/flight/mod.rs:223:16 [INFO] [stdout] | [INFO] [stdout] 223 | && !self.values.ground_speed.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.ground_speed.is_some()` [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/flight/mod.rs:230:64 [INFO] [stdout] | [INFO] [stdout] 230 | if required_fields.contains(&"heading".to_string()) && !self.values.heading.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.heading.is_some()` [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/flight/mod.rs:236:65 [INFO] [stdout] | [INFO] [stdout] 236 | if required_fields.contains(&"latitude".to_string()) && !self.values.latitude.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.latitude.is_some()` [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/flight/mod.rs:242:66 [INFO] [stdout] | [INFO] [stdout] 242 | if required_fields.contains(&"longitude".to_string()) && !self.values.longitude.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.longitude.is_some()` [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/flight/mod.rs:249:16 [INFO] [stdout] | [INFO] [stdout] 249 | && !self.values.vertical_rate.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.vertical_rate.is_some()` [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/flight/mod.rs:256:63 [INFO] [stdout] | [INFO] [stdout] 256 | if required_fields.contains(&"squawk".to_string()) && !self.values.squawk.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.squawk.is_some()` [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/flight/mod.rs:263:16 [INFO] [stdout] | [INFO] [stdout] 263 | && !self.values.squawk_change.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.squawk_change.is_some()` [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/flight/mod.rs:271:16 [INFO] [stdout] | [INFO] [stdout] 271 | && !self.values.squawk_alert.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.squawk_alert.is_some()` [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/flight/mod.rs:279:16 [INFO] [stdout] | [INFO] [stdout] 279 | && !self.values.squawk_ident.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.squawk_ident.is_some()` [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/flight/mod.rs:286:66 [INFO] [stdout] | [INFO] [stdout] 286 | if required_fields.contains(&"on_ground".to_string()) && !self.values.on_ground.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.values.on_ground.is_some()` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/flight/mod.rs:177:26 [INFO] [stdout] | [INFO] [stdout] 177 | required_fields: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 177 - required_fields: &Vec, [INFO] [stdout] 177 + required_fields: &[String], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/flight/mod.rs:312:20 [INFO] [stdout] | [INFO] [stdout] 312 | let uniq = message.uniq().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `message.uniq()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/flight/mod.rs:321:80 [INFO] [stdout] | [INFO] [stdout] 321 | let _new_received = match DateTime::parse_from_rfc3339(&_new_received) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `_new_received` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/flight/mod.rs:343:51 [INFO] [stdout] | [INFO] [stdout] 343 | if let Some(updated) = _flight.update(&mut message, &self.required_fields) { [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `message` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/flight/mod.rs:407:13 [INFO] [stdout] | [INFO] [stdout] 407 | assert_eq!(false, adsbmessage.valid()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 407 - assert_eq!(false, adsbmessage.valid()); [INFO] [stdout] 407 + assert!(!adsbmessage.valid()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/flight/mod.rs:413:9 [INFO] [stdout] | [INFO] [stdout] 413 | assert_eq!(true, adsbmessage.valid()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 413 - assert_eq!(true, adsbmessage.valid()); [INFO] [stdout] 413 + assert!(adsbmessage.valid()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/flight/mod.rs:312:20 [INFO] [stdout] | [INFO] [stdout] 312 | let uniq = message.uniq().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `message.uniq()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/flight/mod.rs:321:80 [INFO] [stdout] | [INFO] [stdout] 321 | let _new_received = match DateTime::parse_from_rfc3339(&_new_received) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `_new_received` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/flight/mod.rs:343:51 [INFO] [stdout] | [INFO] [stdout] 343 | if let Some(updated) = _flight.update(&mut message, &self.required_fields) { [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `message` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/lib.rs:39:23 [INFO] [stdout] | [INFO] [stdout] 39 | let track: bool = match config["process"]["track"].as_bool() { [INFO] [stdout] | _______________________^ [INFO] [stdout] 40 | | Some(track) => track, [INFO] [stdout] 41 | | None => false, [INFO] [stdout] 42 | | }; [INFO] [stdout] | |_____^ help: replace it with: `config["process"]["track"].as_bool().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: float has excessive precision [INFO] [stdout] --> src/flight/mod.rs:425:20 [INFO] [stdout] | [INFO] [stdout] 425 | assert_eq!(24.02170, adsbmessage.longitude.unwrap()); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stdout] = note: `#[warn(clippy::excessive_precision)]` on by default [INFO] [stdout] help: consider changing the type or truncating it to [INFO] [stdout] | [INFO] [stdout] 425 - assert_eq!(24.02170, adsbmessage.longitude.unwrap()); [INFO] [stdout] 425 + assert_eq!(24.021_7, adsbmessage.longitude.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/lib.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | if port < 1 || port > 65535 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(1..=65535).contains(&port)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/flight/mod.rs:454:50 [INFO] [stdout] | [INFO] [stdout] 454 | let mut adsbmessage = Message::parse(&msg); [INFO] [stdout] | ^^^^ help: change this to: `msg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `uuid::Uuid` [INFO] [stdout] --> src/flight/mod.rs:458:40 [INFO] [stdout] | [INFO] [stdout] 458 | initial_uuid = Uuid::from(_flight.uuid); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Uuid::from()`: `_flight.uuid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `uuid::Uuid` [INFO] [stdout] --> src/flight/mod.rs:472:36 [INFO] [stdout] | [INFO] [stdout] 472 | initial_uuid = Uuid::from(_flight.uuid); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Uuid::from()`: `_flight.uuid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused output of future returned by `tokio::task::yield_now` that must be used [INFO] [stdout] --> src/lib.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | tokio::task::yield_now().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: yield_now does nothing unless polled/`await`-ed [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 133 | let _ = tokio::task::yield_now().await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/lib.rs:39:23 [INFO] [stdout] | [INFO] [stdout] 39 | let track: bool = match config["process"]["track"].as_bool() { [INFO] [stdout] | _______________________^ [INFO] [stdout] 40 | | Some(track) => track, [INFO] [stdout] 41 | | None => false, [INFO] [stdout] 42 | | }; [INFO] [stdout] | |_____^ help: replace it with: `config["process"]["track"].as_bool().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/lib.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | if port < 1 || port > 65535 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(1..=65535).contains(&port)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/flight/mod.rs:397:21 [INFO] [stdout] | [INFO] [stdout] 397 | for kind in vec![ [INFO] [stdout] | _____________________^ [INFO] [stdout] 398 | | "Empty", [INFO] [stdout] 399 | | "TooFewFields", [INFO] [stdout] 400 | | "NotAMessage", [INFO] [stdout] ... | [INFO] [stdout] 403 | | "TimeMissing", [INFO] [stdout] 404 | | ] { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 397 ~ for kind in ["Empty", [INFO] [stdout] 398 + "TooFewFields", [INFO] [stdout] 399 + "NotAMessage", [INFO] [stdout] 400 + "AddressMissing", [INFO] [stdout] 401 + "DateMissing", [INFO] [stdout] 402 ~ "TimeMissing"] { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/flight/mod.rs:439:22 [INFO] [stdout] | [INFO] [stdout] 439 | for field in vec![ [INFO] [stdout] | ______________________^ [INFO] [stdout] 440 | | "received", [INFO] [stdout] 441 | | "callsign", [INFO] [stdout] 442 | | "altitude", [INFO] [stdout] ... | [INFO] [stdout] 446 | | "longitude", [INFO] [stdout] 447 | | ] { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 439 ~ for field in ["received", [INFO] [stdout] 440 + "callsign", [INFO] [stdout] 441 + "altitude", [INFO] [stdout] 442 + "ground_speed", [INFO] [stdout] 443 + "heading", [INFO] [stdout] 444 + "latitude", [INFO] [stdout] 445 ~ "longitude"] { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused output of future returned by `tokio::task::yield_now` that must be used [INFO] [stdout] --> src/lib.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | tokio::task::yield_now().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: yield_now does nothing unless polled/`await`-ed [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 133 | let _ = tokio::task::yield_now().await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is an outer doc comment and does not apply to the parent module or crate [INFO] [stdout] --> src/main.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | ///! dump1090 to ZeroMQ bridge [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_doc_comments [INFO] [stdout] = note: `#[warn(clippy::suspicious_doc_comments)]` on by default [INFO] [stdout] help: use an inner doc comment to document the parent module or crate [INFO] [stdout] | [INFO] [stdout] 1 - ///! dump1090 to ZeroMQ bridge [INFO] [stdout] 1 + //! dump1090 to ZeroMQ bridge [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is an outer doc comment and does not apply to the parent module or crate [INFO] [stdout] --> src/main.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | ///! dump1090 to ZeroMQ bridge [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_doc_comments [INFO] [stdout] = note: `#[warn(clippy::suspicious_doc_comments)]` on by default [INFO] [stdout] help: use an inner doc comment to document the parent module or crate [INFO] [stdout] | [INFO] [stdout] 1 - ///! dump1090 to ZeroMQ bridge [INFO] [stdout] 1 + //! dump1090 to ZeroMQ bridge [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.04s [INFO] running `Command { std: "docker" "inspect" "2b06f60df4293fdac91f02faa33e8990671d9281ebb5cfd739e5a33a81822e7d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2b06f60df4293fdac91f02faa33e8990671d9281ebb5cfd739e5a33a81822e7d", kill_on_drop: false }` [INFO] [stdout] 2b06f60df4293fdac91f02faa33e8990671d9281ebb5cfd739e5a33a81822e7d