[INFO] fetching crate iotext_rs 0.5.0... [INFO] linting iotext_rs-0.5.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate iotext_rs 0.5.0 into /workspace/builds/worker-7-tc1/source [INFO] started tweaking crates.io crate iotext_rs 0.5.0 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate iotext_rs 0.5.0 [INFO] tweaked toml for crates.io crate iotext_rs 0.5.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate iotext_rs 0.5.0 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 iotext_rs 0.5.0 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] Downloading crates ... [INFO] [stderr] Downloaded uuid v1.15.1 [INFO] [stderr] Downloaded rust_decimal_macros v1.36.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] dd1bb8eda03337aeafe55fa5106e3e661f8a7cd17bf891819190173095a00518 [INFO] running `Command { std: "docker" "start" "-a" "dd1bb8eda03337aeafe55fa5106e3e661f8a7cd17bf891819190173095a00518", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dd1bb8eda03337aeafe55fa5106e3e661f8a7cd17bf891819190173095a00518", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dd1bb8eda03337aeafe55fa5106e3e661f8a7cd17bf891819190173095a00518", kill_on_drop: false }` [INFO] [stdout] dd1bb8eda03337aeafe55fa5106e3e661f8a7cd17bf891819190173095a00518 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 15f09878949805a9b86949099335570642a26d46ccdfa78e8a8681daf175fd96 [INFO] running `Command { std: "docker" "start" "-a" "15f09878949805a9b86949099335570642a26d46ccdfa78e8a8681daf175fd96", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-ident v1.0.17 [INFO] [stderr] Compiling serde v1.0.218 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rust_decimal v1.36.0 [INFO] [stderr] Checking log v0.4.26 [INFO] [stderr] Checking either v1.14.0 [INFO] [stderr] Compiling serde_json v1.0.139 [INFO] [stderr] Compiling proc-macro2 v1.0.93 [INFO] [stderr] Compiling libc v0.2.170 [INFO] [stderr] Checking anstream v0.6.18 [INFO] [stderr] Checking half v2.4.1 [INFO] [stderr] Checking iana-time-zone v0.1.61 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Checking clap_builder v4.5.31 [INFO] [stderr] Checking chrono v0.4.40 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Compiling quote v1.0.38 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Compiling syn v2.0.98 [INFO] [stderr] Checking is-terminal v0.4.15 [INFO] [stderr] Checking once_cell v1.20.3 [INFO] [stderr] Checking oorandom v11.1.4 [INFO] [stderr] Compiling rust_decimal_macros v1.36.0 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking clap v4.5.31 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking env_filter v0.1.3 [INFO] [stderr] Checking env_logger v0.11.6 [INFO] [stderr] Compiling serde_derive v1.0.218 [INFO] [stderr] Compiling thiserror-impl v2.0.11 [INFO] [stderr] Checking thiserror v2.0.11 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking iotext_rs v0.5.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/validators.rs:80:43 [INFO] [stdout] | [INFO] [stdout] 80 | if !timestamp_str.chars().all(|c| c.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: checking if a string is ascii using iterators [INFO] [stdout] --> src/validators.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | if !device_id_str.chars().all(|c| c.is_ascii()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `device_id_str.is_ascii()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_character_iteration [INFO] [stdout] = note: `#[warn(clippy::needless_character_iteration)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: checking if a string is ascii using iterators [INFO] [stdout] --> src/validators.rs:132:13 [INFO] [stdout] | [INFO] [stdout] 132 | if !metric_name_str.chars().all(|c| c.is_ascii()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `metric_name_str.is_ascii()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_character_iteration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: checking if a string is ascii using iterators [INFO] [stdout] --> src/validators.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | if !metric_data_type_str.chars().all(|c| c.is_ascii()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `metric_data_type_str.is_ascii()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_character_iteration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:56:56 [INFO] [stdout] | [INFO] [stdout] 56 | MetricValueType::IntegerItemType(value) => write!( [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 57 | | f, [INFO] [stdout] 58 | | "{}", [INFO] [stdout] 59 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 64 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:65:53 [INFO] [stdout] | [INFO] [stdout] 65 | MetricValueType::BoolItemType(value) => write!( [INFO] [stdout] | _____________________________________________________^ [INFO] [stdout] 66 | | f, [INFO] [stdout] 67 | | "{}", [INFO] [stdout] 68 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 74 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:75:56 [INFO] [stdout] | [INFO] [stdout] 75 | MetricValueType::DecimalItemType(value) => write!( [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 76 | | f, [INFO] [stdout] 77 | | "{}", [INFO] [stdout] 78 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 83 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:84:53 [INFO] [stdout] | [INFO] [stdout] 84 | MetricValueType::TextItemType(value) => write!( [INFO] [stdout] | _____________________________________________________^ [INFO] [stdout] 85 | | f, [INFO] [stdout] 86 | | "{}", [INFO] [stdout] 87 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 92 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:107:51 [INFO] [stdout] | [INFO] [stdout] 107 | ItemTypeEnum::TimeUnixMilis(value) => write!( [INFO] [stdout] | ___________________________________________________^ [INFO] [stdout] 108 | | f, [INFO] [stdout] 109 | | "{}", [INFO] [stdout] 110 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 115 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:116:46 [INFO] [stdout] | [INFO] [stdout] 116 | ItemTypeEnum::DeviceId(value) => write!( [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 117 | | f, [INFO] [stdout] 118 | | "{}", [INFO] [stdout] 119 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 124 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:125:41 [INFO] [stdout] | [INFO] [stdout] 125 | ItemTypeEnum::Crc(value) => write!( [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 126 | | f, [INFO] [stdout] 127 | | "{}", [INFO] [stdout] 128 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 133 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | / write!( [INFO] [stdout] 154 | | f, [INFO] [stdout] 155 | | "{}", [INFO] [stdout] 156 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 162 | | ) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> src/lib.rs:172:35 [INFO] [stdout] | [INFO] [stdout] 172 | write!(f, "{}", self.value.to_string()) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/lib.rs:229:52 [INFO] [stdout] | [INFO] [stdout] 229 | fn prepare_crc16_str(add_crc16: bool, msg_val: &String) -> String { [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] 229 ~ fn prepare_crc16_str(add_crc16: bool, msg_val: &str) -> String { [INFO] [stdout] 230 | let crc16_element: String = if add_crc16 == true { [INFO] [stdout] ... [INFO] [stdout] 235 | SPECIAL_CHAR_DATA_TYPES_AND_CMD_CTX_SEP, [INFO] [stdout] 236 ~ Tools::crc16(msg_val, CRC16_POLY_DEFAULT) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/lib.rs:230:40 [INFO] [stdout] | [INFO] [stdout] 230 | let crc16_element: String = if add_crc16 == true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `add_crc16` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:416:9 [INFO] [stdout] | [INFO] [stdout] 416 | / match &iotext_data_row.get_metrics() { [INFO] [stdout] 417 | | Some(metrics) => { [INFO] [stdout] 418 | | for metric in metrics { [INFO] [stdout] 419 | | metrics_as_str.push(metric.to_string()); [INFO] [stdout] ... | [INFO] [stdout] 422 | | None => (), [INFO] [stdout] 423 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 416 ~ if let Some(metrics) = &iotext_data_row.get_metrics() { [INFO] [stdout] 417 + for metric in metrics { [INFO] [stdout] 418 + metrics_as_str.push(metric.to_string()); [INFO] [stdout] 419 + } [INFO] [stdout] 420 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:70:13 [INFO] [stdout] | [INFO] [stdout] 70 | !iotext_data_row_from_builder_without_crc.crc16.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `iotext_data_row_from_builder_without_crc.crc16.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/main.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | !iotext_data_row_from_builder_with_crc.crc16.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `iotext_data_row_from_builder_with_crc.crc16.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] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stdout] warning: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> tests/builder_tests.rs:75:14 [INFO] [stdout] | [INFO] [stdout] 75 | .unwrap_or_else(Vec::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `metrics.get(0)` [INFO] [stdout] --> tests/builder_tests.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | metrics.get(0).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `metrics.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> tests/builder_tests.rs:105:14 [INFO] [stdout] | [INFO] [stdout] 105 | .unwrap_or_else(Vec::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `metrics.get(0)` [INFO] [stdout] --> tests/builder_tests.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | metrics.get(0).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `metrics.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> tests/builder_tests.rs:128:14 [INFO] [stdout] | [INFO] [stdout] 128 | .unwrap_or_else(Vec::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `metrics.get(0)` [INFO] [stdout] --> tests/builder_tests.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 131 | metrics.get(0).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `metrics.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> benches/my_benchmark.rs:55:45 [INFO] [stdout] | [INFO] [stdout] 55 | b.iter(|| data_obj.parse_iotext_str(&MSG_EXAMPLE_10_METRICS_FIRST)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `MSG_EXAMPLE_10_METRICS_FIRST` [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 boolean expression can be simplified [INFO] [stdout] --> src/main.rs:70:13 [INFO] [stdout] | [INFO] [stdout] 70 | !iotext_data_row_from_builder_without_crc.crc16.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `iotext_data_row_from_builder_without_crc.crc16.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/main.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | !iotext_data_row_from_builder_with_crc.crc16.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `iotext_data_row_from_builder_with_crc.crc16.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: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/validators.rs:80:43 [INFO] [stdout] | [INFO] [stdout] 80 | if !timestamp_str.chars().all(|c| c.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: checking if a string is ascii using iterators [INFO] [stdout] --> src/validators.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | if !device_id_str.chars().all(|c| c.is_ascii()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `device_id_str.is_ascii()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_character_iteration [INFO] [stdout] = note: `#[warn(clippy::needless_character_iteration)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: checking if a string is ascii using iterators [INFO] [stdout] --> src/validators.rs:132:13 [INFO] [stdout] | [INFO] [stdout] 132 | if !metric_name_str.chars().all(|c| c.is_ascii()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `metric_name_str.is_ascii()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_character_iteration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: checking if a string is ascii using iterators [INFO] [stdout] --> src/validators.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | if !metric_data_type_str.chars().all(|c| c.is_ascii()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `metric_data_type_str.is_ascii()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_character_iteration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:56:56 [INFO] [stdout] | [INFO] [stdout] 56 | MetricValueType::IntegerItemType(value) => write!( [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 57 | | f, [INFO] [stdout] 58 | | "{}", [INFO] [stdout] 59 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 64 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:65:53 [INFO] [stdout] | [INFO] [stdout] 65 | MetricValueType::BoolItemType(value) => write!( [INFO] [stdout] | _____________________________________________________^ [INFO] [stdout] 66 | | f, [INFO] [stdout] 67 | | "{}", [INFO] [stdout] 68 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 74 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:75:56 [INFO] [stdout] | [INFO] [stdout] 75 | MetricValueType::DecimalItemType(value) => write!( [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 76 | | f, [INFO] [stdout] 77 | | "{}", [INFO] [stdout] 78 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 83 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:84:53 [INFO] [stdout] | [INFO] [stdout] 84 | MetricValueType::TextItemType(value) => write!( [INFO] [stdout] | _____________________________________________________^ [INFO] [stdout] 85 | | f, [INFO] [stdout] 86 | | "{}", [INFO] [stdout] 87 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 92 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:107:51 [INFO] [stdout] | [INFO] [stdout] 107 | ItemTypeEnum::TimeUnixMilis(value) => write!( [INFO] [stdout] | ___________________________________________________^ [INFO] [stdout] 108 | | f, [INFO] [stdout] 109 | | "{}", [INFO] [stdout] 110 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 115 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:116:46 [INFO] [stdout] | [INFO] [stdout] 116 | ItemTypeEnum::DeviceId(value) => write!( [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 117 | | f, [INFO] [stdout] 118 | | "{}", [INFO] [stdout] 119 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 124 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:125:41 [INFO] [stdout] | [INFO] [stdout] 125 | ItemTypeEnum::Crc(value) => write!( [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 126 | | f, [INFO] [stdout] 127 | | "{}", [INFO] [stdout] 128 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 133 | | ), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/lib.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | / write!( [INFO] [stdout] 154 | | f, [INFO] [stdout] 155 | | "{}", [INFO] [stdout] 156 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 162 | | ) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> src/lib.rs:172:35 [INFO] [stdout] | [INFO] [stdout] 172 | write!(f, "{}", self.value.to_string()) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/lib.rs:229:52 [INFO] [stdout] | [INFO] [stdout] 229 | fn prepare_crc16_str(add_crc16: bool, msg_val: &String) -> String { [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] 229 ~ fn prepare_crc16_str(add_crc16: bool, msg_val: &str) -> String { [INFO] [stdout] 230 | let crc16_element: String = if add_crc16 == true { [INFO] [stdout] ... [INFO] [stdout] 235 | SPECIAL_CHAR_DATA_TYPES_AND_CMD_CTX_SEP, [INFO] [stdout] 236 ~ Tools::crc16(msg_val, CRC16_POLY_DEFAULT) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/lib.rs:230:40 [INFO] [stdout] | [INFO] [stdout] 230 | let crc16_element: String = if add_crc16 == true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `add_crc16` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:416:9 [INFO] [stdout] | [INFO] [stdout] 416 | / match &iotext_data_row.get_metrics() { [INFO] [stdout] 417 | | Some(metrics) => { [INFO] [stdout] 418 | | for metric in metrics { [INFO] [stdout] 419 | | metrics_as_str.push(metric.to_string()); [INFO] [stdout] ... | [INFO] [stdout] 422 | | None => (), [INFO] [stdout] 423 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 416 ~ if let Some(metrics) = &iotext_data_row.get_metrics() { [INFO] [stdout] 417 + for metric in metrics { [INFO] [stdout] 418 + metrics_as_str.push(metric.to_string()); [INFO] [stdout] 419 + } [INFO] [stdout] 420 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 30.16s [INFO] running `Command { std: "docker" "inspect" "15f09878949805a9b86949099335570642a26d46ccdfa78e8a8681daf175fd96", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "15f09878949805a9b86949099335570642a26d46ccdfa78e8a8681daf175fd96", kill_on_drop: false }` [INFO] [stdout] 15f09878949805a9b86949099335570642a26d46ccdfa78e8a8681daf175fd96