[INFO] cloning repository https://github.com/stainsatin/jxtd [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/stainsatin/jxtd" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstainsatin%2Fjxtd", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstainsatin%2Fjxtd'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ab6b1bc996d235332aba0b59be7698e555f673c2 [INFO] linting stainsatin/jxtd against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstainsatin%2Fjxtd" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] [stderr] Updating files: 2% (453/15717) Updating files: 3% (472/15717) Updating files: 4% (629/15717) Updating files: 5% (786/15717) Updating files: 6% (944/15717) Updating files: 7% (1101/15717) Updating files: 8% (1258/15717) Updating files: 9% (1415/15717) Updating files: 10% (1572/15717) Updating files: 11% (1729/15717) Updating files: 12% (1887/15717) Updating files: 13% (2044/15717) Updating files: 14% (2201/15717) Updating files: 14% (2217/15717) Updating files: 15% (2358/15717) Updating files: 16% (2515/15717) Updating files: 17% (2672/15717) Updating files: 18% (2830/15717) Updating files: 19% (2987/15717) Updating files: 20% (3144/15717) Updating files: 21% (3301/15717) Updating files: 22% (3458/15717) Updating files: 23% (3615/15717) Updating files: 24% (3773/15717) Updating files: 25% (3930/15717) Updating files: 26% (4087/15717) Updating files: 27% (4244/15717) Updating files: 28% (4401/15717) Updating files: 29% (4558/15717) Updating files: 30% (4716/15717) Updating files: 31% (4873/15717) Updating files: 32% (5030/15717) Updating files: 33% (5187/15717) Updating files: 34% (5344/15717) Updating files: 35% (5501/15717) Updating files: 36% (5659/15717) Updating files: 36% (5730/15717) Updating files: 37% (5816/15717) Updating files: 38% (5973/15717) Updating files: 39% (6130/15717) Updating files: 40% (6287/15717) Updating files: 41% (6444/15717) Updating files: 42% (6602/15717) Updating files: 43% (6759/15717) Updating files: 44% (6916/15717) Updating files: 45% (7073/15717) Updating files: 46% (7230/15717) Updating files: 47% (7387/15717) Updating files: 48% (7545/15717) Updating files: 49% (7702/15717) Updating files: 50% (7859/15717) Updating files: 51% (8016/15717) Updating files: 52% (8173/15717) Updating files: 53% (8331/15717) Updating files: 54% (8488/15717) Updating files: 55% (8645/15717) Updating files: 56% (8802/15717) Updating files: 57% (8959/15717) Updating files: 58% (9116/15717) Updating files: 59% (9274/15717) Updating files: 60% (9431/15717) Updating files: 61% (9588/15717) Updating files: 62% (9745/15717) Updating files: 63% (9902/15717) Updating files: 64% (10059/15717) Updating files: 65% (10217/15717) Updating files: 66% (10374/15717) Updating files: 67% (10531/15717) Updating files: 68% (10688/15717) Updating files: 69% (10845/15717) Updating files: 70% (11002/15717) Updating files: 71% (11160/15717) Updating files: 72% (11317/15717) Updating files: 73% (11474/15717) Updating files: 74% (11631/15717) Updating files: 75% (11788/15717) Updating files: 76% (11945/15717) Updating files: 77% (12103/15717) Updating files: 78% (12260/15717) Updating files: 78% (12368/15717) Updating files: 79% (12417/15717) Updating files: 80% (12574/15717) Updating files: 81% (12731/15717) Updating files: 82% (12888/15717) Updating files: 83% (13046/15717) Updating files: 84% (13203/15717) Updating files: 85% (13360/15717) Updating files: 86% (13517/15717) Updating files: 87% (13674/15717) Updating files: 88% (13831/15717) Updating files: 89% (13989/15717) Updating files: 90% (14146/15717) Updating files: 91% (14303/15717) Updating files: 92% (14460/15717) Updating files: 93% (14617/15717) Updating files: 94% (14774/15717) Updating files: 95% (14932/15717) Updating files: 96% (15089/15717) Updating files: 97% (15246/15717) Updating files: 98% (15403/15717) Updating files: 99% (15560/15717) Updating files: 100% (15717/15717) Updating files: 100% (15717/15717), done. [INFO] started tweaking git repo https://github.com/stainsatin/jxtd [INFO] finished tweaking git repo https://github.com/stainsatin/jxtd [INFO] tweaked toml for git repo https://github.com/stainsatin/jxtd written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/stainsatin/jxtd on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/stainsatin/jxtd 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] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 782655b3260306cfca623305b5593223dd1e8b453a3a81bbe35e7e1cd5fb739c [INFO] running `Command { std: "docker" "start" "-a" "782655b3260306cfca623305b5593223dd1e8b453a3a81bbe35e7e1cd5fb739c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "782655b3260306cfca623305b5593223dd1e8b453a3a81bbe35e7e1cd5fb739c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "782655b3260306cfca623305b5593223dd1e8b453a3a81bbe35e7e1cd5fb739c", kill_on_drop: false }` [INFO] [stdout] 782655b3260306cfca623305b5593223dd1e8b453a3a81bbe35e7e1cd5fb739c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b103fdf4127477640205093e04035b360f3527101537e69943e05473c5c863c6 [INFO] running `Command { std: "docker" "start" "-a" "b103fdf4127477640205093e04035b360f3527101537e69943e05473c5c863c6", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.69 [INFO] [stderr] Checking socket2 v0.5.5 [INFO] [stderr] Checking mio v0.8.9 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking parking_lot_core v0.9.9 [INFO] [stderr] Checking renob v0.1.0 (/opt/rustwide/workdir/renob) [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Compiling syn v2.0.39 [INFO] [stderr] Checking engug v0.1.0 (/opt/rustwide/workdir/engug) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> engug/src/parser.rs:410:51 [INFO] [stdout] | [INFO] [stdout] 410 | ... entry:entry})) [INFO] [stdout] | ^^^^^^^^^^^ help: replace it with: `entry` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> engug/src/parser.rs:470:26 [INFO] [stdout] | [INFO] [stdout] 470 | value: value})) [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `value` [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: unnecessary trailing semicolon [INFO] [stdout] --> engug/src/writer.rs:63:105 [INFO] [stdout] | [INFO] [stdout] 63 | self.file.write_all(&((sections.len()+1) as u8).to_le_bytes()).expect("Failed to write header");; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `else` branch is empty [INFO] [stdout] --> engug/src/writer.rs:60:11 [INFO] [stdout] | [INFO] [stdout] 60 | } else { [INFO] [stdout] | ___________^ [INFO] [stdout] 61 | | [INFO] [stdout] 62 | | } [INFO] [stdout] | |_________^ help: you can remove it [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_else [INFO] [stdout] = note: `#[warn(clippy::needless_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> engug/src/writer.rs:59:109 [INFO] [stdout] | [INFO] [stdout] 59 | self.file.write_all(&((sections.len()+1) as u8).to_be_bytes()).expect("Failed to write header");; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> engug/src/parser.rs:410:51 [INFO] [stdout] | [INFO] [stdout] 410 | ... entry:entry})) [INFO] [stdout] | ^^^^^^^^^^^ help: replace it with: `entry` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> engug/src/parser.rs:470:26 [INFO] [stdout] | [INFO] [stdout] 470 | value: value})) [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `value` [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: unnecessary trailing semicolon [INFO] [stdout] --> engug/src/writer.rs:63:105 [INFO] [stdout] | [INFO] [stdout] 63 | self.file.write_all(&((sections.len()+1) as u8).to_le_bytes()).expect("Failed to write header");; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `else` branch is empty [INFO] [stdout] --> engug/src/writer.rs:60:11 [INFO] [stdout] | [INFO] [stdout] 60 | } else { [INFO] [stdout] | ___________^ [INFO] [stdout] 61 | | [INFO] [stdout] 62 | | } [INFO] [stdout] | |_________^ help: you can remove it [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_else [INFO] [stdout] = note: `#[warn(clippy::needless_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> engug/src/writer.rs:59:109 [INFO] [stdout] | [INFO] [stdout] 59 | self.file.write_all(&((sections.len()+1) as u8).to_be_bytes()).expect("Failed to write header");; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> engug/src/writer.rs:234:37 [INFO] [stdout] | [INFO] [stdout] 234 | ... let mut value_offset = match value { [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dataset` [INFO] [stdout] --> engug/src/writer.rs:191:17 [INFO] [stdout] | [INFO] [stdout] 191 | let dataset = data.strings.join(""); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dataset` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `name_len` is assigned to, but never used [INFO] [stdout] --> engug/src/writer.rs:193:17 [INFO] [stdout] | [INFO] [stdout] 193 | let name_len:u64; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_name_len` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `name_offset` is assigned to, but never used [INFO] [stdout] --> engug/src/writer.rs:194:17 [INFO] [stdout] | [INFO] [stdout] 194 | let name_offset:u64; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_name_offset` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `name_len` is never read [INFO] [stdout] --> engug/src/writer.rs:197:21 [INFO] [stdout] | [INFO] [stdout] 197 | name_len = *len; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `name_offset` is never read [INFO] [stdout] --> engug/src/writer.rs:198:21 [INFO] [stdout] | [INFO] [stdout] 198 | name_offset = *offset; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> engug/src/ir.rs:203:9 [INFO] [stdout] | [INFO] [stdout] 203 | / match self.entries.get(key) { [INFO] [stdout] 204 | | None => None, [INFO] [stdout] 205 | | Some(values) => Some( [INFO] [stdout] 206 | | values [INFO] [stdout] ... | [INFO] [stdout] 213 | | ), [INFO] [stdout] 214 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 203 ~ self.entries.get(key).map(|values| values [INFO] [stdout] 204 + .iter() [INFO] [stdout] 205 + .map(|v| match v.to_owned().try_into() { [INFO] [stdout] 206 + Ok(value) => Some(value), [INFO] [stdout] 207 + Err(_) => None, [INFO] [stdout] 208 + }) [INFO] [stdout] 209 + .collect()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> engug/src/ir.rs:208:30 [INFO] [stdout] | [INFO] [stdout] 208 | .map(|v| match v.to_owned().try_into() { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 209 | | Ok(value) => Some(value), [INFO] [stdout] 210 | | Err(_) => None, [INFO] [stdout] 211 | | }) [INFO] [stdout] | |_____________________^ help: replace with: `v.to_owned().try_into().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: you are using an explicit closure for cloning elements [INFO] [stdout] --> engug/src/ir.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | self.entries.keys().map(|x| x.clone()).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `self.entries.keys().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> engug/src/writer.rs:234:37 [INFO] [stdout] | [INFO] [stdout] 234 | ... let mut value_offset = match value { [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dataset` [INFO] [stdout] --> engug/src/writer.rs:191:17 [INFO] [stdout] | [INFO] [stdout] 191 | let dataset = data.strings.join(""); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dataset` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> engug/src/parser.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | / let _result = match many0(parse_section)(bytes) { [INFO] [stdout] 35 | | Ok(_result) => { [INFO] [stdout] 36 | | return Ok(_result.1); [INFO] [stdout] ... | [INFO] [stdout] 41 | | }; [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 34 - let _result = match many0(parse_section)(bytes) { [INFO] [stdout] 34 + match many0(parse_section)(bytes) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `name_len` is assigned to, but never used [INFO] [stdout] --> engug/src/writer.rs:193:17 [INFO] [stdout] | [INFO] [stdout] 193 | let name_len:u64; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_name_len` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `name_offset` is assigned to, but never used [INFO] [stdout] --> engug/src/writer.rs:194:17 [INFO] [stdout] | [INFO] [stdout] 194 | let name_offset:u64; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_name_offset` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `name_len` is never read [INFO] [stdout] --> engug/src/writer.rs:197:21 [INFO] [stdout] | [INFO] [stdout] 197 | name_len = *len; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `name_offset` is never read [INFO] [stdout] --> engug/src/writer.rs:198:21 [INFO] [stdout] | [INFO] [stdout] 198 | name_offset = *offset; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Section` is never constructed [INFO] [stdout] --> engug/src/ir.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct Section { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `name`, `add_entry`, `get_entry`, `get_keys`, and `get_entry_boxed` are never used [INFO] [stdout] --> engug/src/ir.rs:174:12 [INFO] [stdout] | [INFO] [stdout] 173 | impl Section { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 174 | pub fn new(name: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn name(&self) -> &str { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | pub fn add_entry(&mut self, key: &str, value: V) -> Option<()> [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn get_entry(&self, key: &str) -> Option>> [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub fn get_keys(&self) -> Vec{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | pub fn get_entry_boxed(&self, key: &str) -> Option>{ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdcParser` is never constructed [INFO] [stdout] --> engug/src/parser.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct EdcParser { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `parse` are never used [INFO] [stdout] --> engug/src/parser.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl EdcParser { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 20 | pub fn new(path: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn parse(&self) -> Result, Box> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_section` is never used [INFO] [stdout] --> engug/src/parser.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn parse_section(input: &[u8]) -> IResult<&[u8], crate::ir::Section> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_section_name` is never used [INFO] [stdout] --> engug/src/parser.rs:92:4 [INFO] [stdout] | [INFO] [stdout] 92 | fn parse_section_name(input: &[u8]) -> IResult<&[u8], &str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_property` is never used [INFO] [stdout] --> engug/src/parser.rs:103:4 [INFO] [stdout] | [INFO] [stdout] 103 | fn parse_property(input: &[u8]) -> IResult<&[u8], (String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check` is never used [INFO] [stdout] --> engug/src/parser.rs:118:4 [INFO] [stdout] | [INFO] [stdout] 118 | fn check(section:&mut crate::ir::Section,keys:Vec)->bool{ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdtParser` is never constructed [INFO] [stdout] --> engug/src/parser.rs:313:12 [INFO] [stdout] | [INFO] [stdout] 313 | pub struct EdtParser{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdtHeader` is never constructed [INFO] [stdout] --> engug/src/parser.rs:319:8 [INFO] [stdout] | [INFO] [stdout] 319 | struct EdtHeader{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdtSectionEntry` is never constructed [INFO] [stdout] --> engug/src/parser.rs:328:8 [INFO] [stdout] | [INFO] [stdout] 328 | struct EdtSectionEntry{ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdtSectionHeader` is never constructed [INFO] [stdout] --> engug/src/parser.rs:337:8 [INFO] [stdout] | [INFO] [stdout] 337 | struct EdtSectionHeader{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdtData` is never constructed [INFO] [stdout] --> engug/src/parser.rs:343:8 [INFO] [stdout] | [INFO] [stdout] 343 | struct EdtData{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdtEntry` is never constructed [INFO] [stdout] --> engug/src/parser.rs:350:8 [INFO] [stdout] | [INFO] [stdout] 350 | struct EdtEntry{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> engug/src/parser.rs:54:38 [INFO] [stdout] | [INFO] [stdout] 54 | if value.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: multiple associated items are never used [INFO] [stdout] --> engug/src/parser.rs:358:8 [INFO] [stdout] | [INFO] [stdout] 355 | impl EdtParser{ [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 358 | fn header_parser(header: &[u8]) -> IResult<&[u8] ,EdtHeader>{ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | fn section_entry_parser(section_entry:&[u8]) -> IResult<&[u8] ,EdtSectionEntry>{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 404 | fn section_header_parser(section_header:&[u8] ,is_big_endian:bool) -> IResult<&[u8] ,EdtSectionHeader>{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 414 | fn data_parser(data:&[u8]) -> IResult<&[u8] ,EdtData>{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 454 | fn section_parser<'a>(entry:&'a[u8] ,data_section:&'a[u8] ,is_big_endian:bool) -> IResult<&'a[u8] ,EdtEntry>{ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 474 | pub fn new(path: &str) -> Self{ [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 482 | pub fn parse(&self) -> Result, Box>{ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `EdtValue` is never used [INFO] [stdout] --> engug/src/transform.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum EdtValue{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdtData` is never constructed [INFO] [stdout] --> engug/src/transform.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct EdtData{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdtSection` is never constructed [INFO] [stdout] --> engug/src/transform.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct EdtSection{ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `search_string` is never used [INFO] [stdout] --> engug/src/transform.rs:114:4 [INFO] [stdout] | [INFO] [stdout] 114 | fn search_string(strings: &Vec, offset: u64, len: u64) -> Option{ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdtWriter` is never constructed [INFO] [stdout] --> engug/src/writer.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct EdtWriter { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `write`, `write_header`, `write_section_header`, and `write_section` are never used [INFO] [stdout] --> engug/src/writer.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl EdtWriter { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 17 | pub fn new(path: &str,is_big_endian:bool) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn write(&mut self, sections: Vec) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | fn write_header(&mut self, sections: &Vec){ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | fn write_section_header(&mut self, sections: &Vec){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | fn write_section(&mut self, sections: &Vec){ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:309:5 [INFO] [stdout] | [INFO] [stdout] 309 | return true; [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] 309 - return true; [INFO] [stdout] 309 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> engug/src/parser.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | / let mut contain_keys = Vec::new(); [INFO] [stdout] 123 | | contain_keys.push(String::from("name")); [INFO] [stdout] 124 | | contain_keys.push(String::from("description")); [INFO] [stdout] 125 | | contain_keys.push(String::from("mid")); [INFO] [stdout] | |___________________________________________________^ help: consider using the `vec![]` macro: `let contain_keys = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> engug/src/parser.rs:127:35 [INFO] [stdout] | [INFO] [stdout] 127 | if !keys.contains(&i) { [INFO] [stdout] | ^^ help: change this to: `i` [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: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> engug/src/parser.rs:161:47 [INFO] [stdout] | [INFO] [stdout] 161 | let values: Vec> = match section.get_entry("extra") { [INFO] [stdout] | _______________________________________________^ [INFO] [stdout] 162 | | Some(values) => values, [INFO] [stdout] 163 | | None => { [INFO] [stdout] 164 | | vec![] [INFO] [stdout] 165 | | } [INFO] [stdout] 166 | | }; [INFO] [stdout] | |_____________^ help: replace it with: `section.get_entry("extra").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: use of `filter_map` with an identity function [INFO] [stdout] --> engug/src/parser.rs:167:61 [INFO] [stdout] | [INFO] [stdout] 167 | let mut names: Vec = values.into_iter().filter_map(|opt| opt).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] = note: `#[warn(clippy::filter_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> engug/src/parser.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | / let mut some_keys = Vec::new(); [INFO] [stdout] 171 | | some_keys.push("unspecific"); [INFO] [stdout] 172 | | some_keys.push("pilotage"); [INFO] [stdout] 173 | | some_keys.push("lane"); [INFO] [stdout] | |___________________________________^ help: consider using the `vec![]` macro: `let some_keys = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> engug/src/parser.rs:177:62 [INFO] [stdout] | [INFO] [stdout] 177 | let res2: Vec = res1.into_iter().filter_map(|opt| opt).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> engug/src/ir.rs:203:9 [INFO] [stdout] | [INFO] [stdout] 203 | / match self.entries.get(key) { [INFO] [stdout] 204 | | None => None, [INFO] [stdout] 205 | | Some(values) => Some( [INFO] [stdout] 206 | | values [INFO] [stdout] ... | [INFO] [stdout] 213 | | ), [INFO] [stdout] 214 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 203 ~ self.entries.get(key).map(|values| values [INFO] [stdout] 204 + .iter() [INFO] [stdout] 205 + .map(|v| match v.to_owned().try_into() { [INFO] [stdout] 206 + Ok(value) => Some(value), [INFO] [stdout] 207 + Err(_) => None, [INFO] [stdout] 208 + }) [INFO] [stdout] 209 + .collect()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> engug/src/ir.rs:208:30 [INFO] [stdout] | [INFO] [stdout] 208 | .map(|v| match v.to_owned().try_into() { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 209 | | Ok(value) => Some(value), [INFO] [stdout] 210 | | Err(_) => None, [INFO] [stdout] 211 | | }) [INFO] [stdout] | |_____________________^ help: replace with: `v.to_owned().try_into().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: you are using an explicit closure for cloning elements [INFO] [stdout] --> engug/src/ir.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | self.entries.keys().map(|x| x.clone()).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `self.entries.keys().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> engug/src/parser.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | / let _result = match many0(parse_section)(bytes) { [INFO] [stdout] 35 | | Ok(_result) => { [INFO] [stdout] 36 | | return Ok(_result.1); [INFO] [stdout] ... | [INFO] [stdout] 41 | | }; [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 34 - let _result = match many0(parse_section)(bytes) { [INFO] [stdout] 34 + match many0(parse_section)(bytes) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> engug/src/parser.rs:54:38 [INFO] [stdout] | [INFO] [stdout] 54 | if value.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: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:309:5 [INFO] [stdout] | [INFO] [stdout] 309 | return true; [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] 309 - return true; [INFO] [stdout] 309 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> engug/src/parser.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | / let mut contain_keys = Vec::new(); [INFO] [stdout] 123 | | contain_keys.push(String::from("name")); [INFO] [stdout] 124 | | contain_keys.push(String::from("description")); [INFO] [stdout] 125 | | contain_keys.push(String::from("mid")); [INFO] [stdout] | |___________________________________________________^ help: consider using the `vec![]` macro: `let contain_keys = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> engug/src/parser.rs:127:35 [INFO] [stdout] | [INFO] [stdout] 127 | if !keys.contains(&i) { [INFO] [stdout] | ^^ help: change this to: `i` [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: use of `filter_map` with an identity function [INFO] [stdout] --> engug/src/parser.rs:244:55 [INFO] [stdout] | [INFO] [stdout] 244 | let names: Vec = deps.into_iter().filter_map(|opt| opt).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> engug/src/parser.rs:161:47 [INFO] [stdout] | [INFO] [stdout] 161 | let values: Vec> = match section.get_entry("extra") { [INFO] [stdout] | _______________________________________________^ [INFO] [stdout] 162 | | Some(values) => values, [INFO] [stdout] 163 | | None => { [INFO] [stdout] 164 | | vec![] [INFO] [stdout] 165 | | } [INFO] [stdout] 166 | | }; [INFO] [stdout] | |_____________^ help: replace it with: `section.get_entry("extra").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: use of `filter_map` with an identity function [INFO] [stdout] --> engug/src/parser.rs:167:61 [INFO] [stdout] | [INFO] [stdout] 167 | let mut names: Vec = values.into_iter().filter_map(|opt| opt).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] = note: `#[warn(clippy::filter_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:419:79 [INFO] [stdout] | [INFO] [stdout] 419 | ... b"\x01" => {let(data ,value) = take(1u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 420 | | ... length: Bytes::copy_from_slice(length), [INFO] [stdout] 421 | | ... value: Bytes::copy_from_slice(value)}));}, [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 419 ~ b"\x01" => {let(data ,value) = take(1u8)(data)?; Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 420 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 421 ~ value: Bytes::copy_from_slice(value)}))}, [INFO] [stdout] 422 | b"\x02" => {let(data ,value) = take(2u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] ... [INFO] [stdout] 432 | [INFO] [stdout] 433 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:422:79 [INFO] [stdout] | [INFO] [stdout] 422 | ... b"\x02" => {let(data ,value) = take(2u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 423 | | ... length: Bytes::copy_from_slice(length), [INFO] [stdout] 424 | | ... value: Bytes::copy_from_slice(value)}));}, [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 422 ~ b"\x02" => {let(data ,value) = take(2u8)(data)?; Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 423 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 424 ~ value: Bytes::copy_from_slice(value)}))}, [INFO] [stdout] 425 | b"\x04" => {let(data ,value) = take(4u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] ... [INFO] [stdout] 432 | [INFO] [stdout] 433 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> engug/src/parser.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | / let mut some_keys = Vec::new(); [INFO] [stdout] 171 | | some_keys.push("unspecific"); [INFO] [stdout] 172 | | some_keys.push("pilotage"); [INFO] [stdout] 173 | | some_keys.push("lane"); [INFO] [stdout] | |___________________________________^ help: consider using the `vec![]` macro: `let some_keys = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:425:79 [INFO] [stdout] | [INFO] [stdout] 425 | ... b"\x04" => {let(data ,value) = take(4u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 426 | | ... length: Bytes::copy_from_slice(length), [INFO] [stdout] 427 | | ... value: Bytes::copy_from_slice(value)}));}, [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 425 ~ b"\x04" => {let(data ,value) = take(4u8)(data)?; Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 426 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 427 ~ value: Bytes::copy_from_slice(value)}))}, [INFO] [stdout] 428 | b"\x08" => {let(data ,value) = take(8u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] ... [INFO] [stdout] 432 | [INFO] [stdout] 433 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:428:79 [INFO] [stdout] | [INFO] [stdout] 428 | ... b"\x08" => {let(data ,value) = take(8u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 429 | | ... length: Bytes::copy_from_slice(length), [INFO] [stdout] 430 | | ... value: Bytes::copy_from_slice(value)}));}, [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 428 ~ b"\x08" => {let(data ,value) = take(8u8)(data)?; Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 429 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 430 ~ value: Bytes::copy_from_slice(value)}))}, [INFO] [stdout] 431 | _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] 432 | [INFO] [stdout] 433 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:431:35 [INFO] [stdout] | [INFO] [stdout] 431 | ... _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 431 ~ _ => Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] 432 | [INFO] [stdout] 433 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:436:79 [INFO] [stdout] | [INFO] [stdout] 436 | ... b"\x04" => {let(data ,value) = take(4u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 437 | | ... length: Bytes::copy_from_slice(length), [INFO] [stdout] 438 | | ... value: Bytes::copy_from_slice(value)}));}, [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 436 ~ b"\x04" => {let(data ,value) = take(4u8)(data)?; Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 437 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 438 ~ value: Bytes::copy_from_slice(value)}))}, [INFO] [stdout] 439 | b"\x08" => {let(data ,value) = take(8u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] ... [INFO] [stdout] 442 | _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] 443 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> engug/src/parser.rs:177:62 [INFO] [stdout] | [INFO] [stdout] 177 | let res2: Vec = res1.into_iter().filter_map(|opt| opt).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:439:79 [INFO] [stdout] | [INFO] [stdout] 439 | ... b"\x08" => {let(data ,value) = take(8u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 440 | | ... length: Bytes::copy_from_slice(length), [INFO] [stdout] 441 | | ... value: Bytes::copy_from_slice(value)}));}, [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 439 ~ b"\x08" => {let(data ,value) = take(8u8)(data)?; Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 440 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 441 ~ value: Bytes::copy_from_slice(value)}))}, [INFO] [stdout] 442 | _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] 443 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:442:35 [INFO] [stdout] | [INFO] [stdout] 442 | ... _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 442 ~ _ => Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] 443 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:446:25 [INFO] [stdout] | [INFO] [stdout] 446 | / return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 447 | | length: Bytes::copy_from_slice(length), [INFO] [stdout] 448 | | value: Bytes::copy_from_slice(value)})); [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 446 ~ Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 447 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 448 ~ value: Bytes::copy_from_slice(value)})) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:450:24 [INFO] [stdout] | [INFO] [stdout] 450 | _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 450 - _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] 450 + _ => Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> engug/src/parser.rs:244:55 [INFO] [stdout] | [INFO] [stdout] 244 | let names: Vec = deps.into_iter().filter_map(|opt| opt).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> engug/src/parser.rs:456:9 [INFO] [stdout] | [INFO] [stdout] 456 | let name; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `name` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 456 ~ [INFO] [stdout] 457 | //下面检查第一个数据是否为entry的key中要求的String类型 [INFO] [stdout] 458 ~ let name = match key.data_type.as_bytes() { [INFO] [stdout] 459 | b"\x02" => {let offset = if is_big_endian {key.value.as_bytes().get_u64() as usize} else {key.value.as_bytes().get_u64_le() as usize}; [INFO] [stdout] ... [INFO] [stdout] 463 | let target = &data_section[begin..end]; [INFO] [stdout] 464 ~ std::str::from_utf8(target).unwrap().to_string()}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> engug/src/parser.rs:549:21 [INFO] [stdout] | [INFO] [stdout] 549 | times = times + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `times += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:419:79 [INFO] [stdout] | [INFO] [stdout] 419 | ... b"\x01" => {let(data ,value) = take(1u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 420 | | ... length: Bytes::copy_from_slice(length), [INFO] [stdout] 421 | | ... value: Bytes::copy_from_slice(value)}));}, [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 419 ~ b"\x01" => {let(data ,value) = take(1u8)(data)?; Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 420 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 421 ~ value: Bytes::copy_from_slice(value)}))}, [INFO] [stdout] 422 | b"\x02" => {let(data ,value) = take(2u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] ... [INFO] [stdout] 432 | [INFO] [stdout] 433 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:422:79 [INFO] [stdout] | [INFO] [stdout] 422 | ... b"\x02" => {let(data ,value) = take(2u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 423 | | ... length: Bytes::copy_from_slice(length), [INFO] [stdout] 424 | | ... value: Bytes::copy_from_slice(value)}));}, [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 422 ~ b"\x02" => {let(data ,value) = take(2u8)(data)?; Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 423 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 424 ~ value: Bytes::copy_from_slice(value)}))}, [INFO] [stdout] 425 | b"\x04" => {let(data ,value) = take(4u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] ... [INFO] [stdout] 432 | [INFO] [stdout] 433 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:425:79 [INFO] [stdout] | [INFO] [stdout] 425 | ... b"\x04" => {let(data ,value) = take(4u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 426 | | ... length: Bytes::copy_from_slice(length), [INFO] [stdout] 427 | | ... value: Bytes::copy_from_slice(value)}));}, [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 425 ~ b"\x04" => {let(data ,value) = take(4u8)(data)?; Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 426 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 427 ~ value: Bytes::copy_from_slice(value)}))}, [INFO] [stdout] 428 | b"\x08" => {let(data ,value) = take(8u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] ... [INFO] [stdout] 432 | [INFO] [stdout] 433 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:428:79 [INFO] [stdout] | [INFO] [stdout] 428 | ... b"\x08" => {let(data ,value) = take(8u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 429 | | ... length: Bytes::copy_from_slice(length), [INFO] [stdout] 430 | | ... value: Bytes::copy_from_slice(value)}));}, [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 428 ~ b"\x08" => {let(data ,value) = take(8u8)(data)?; Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 429 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 430 ~ value: Bytes::copy_from_slice(value)}))}, [INFO] [stdout] 431 | _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] 432 | [INFO] [stdout] 433 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:431:35 [INFO] [stdout] | [INFO] [stdout] 431 | ... _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 431 ~ _ => Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] 432 | [INFO] [stdout] 433 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:436:79 [INFO] [stdout] | [INFO] [stdout] 436 | ... b"\x04" => {let(data ,value) = take(4u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 437 | | ... length: Bytes::copy_from_slice(length), [INFO] [stdout] 438 | | ... value: Bytes::copy_from_slice(value)}));}, [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 436 ~ b"\x04" => {let(data ,value) = take(4u8)(data)?; Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 437 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 438 ~ value: Bytes::copy_from_slice(value)}))}, [INFO] [stdout] 439 | b"\x08" => {let(data ,value) = take(8u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] ... [INFO] [stdout] 442 | _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] 443 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:439:79 [INFO] [stdout] | [INFO] [stdout] 439 | ... b"\x08" => {let(data ,value) = take(8u8)(data)?; return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 440 | | ... length: Bytes::copy_from_slice(length), [INFO] [stdout] 441 | | ... value: Bytes::copy_from_slice(value)}));}, [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 439 ~ b"\x08" => {let(data ,value) = take(8u8)(data)?; Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 440 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 441 ~ value: Bytes::copy_from_slice(value)}))}, [INFO] [stdout] 442 | _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] 443 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:442:35 [INFO] [stdout] | [INFO] [stdout] 442 | ... _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 442 ~ _ => Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] 443 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:446:25 [INFO] [stdout] | [INFO] [stdout] 446 | / return Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 447 | | length: Bytes::copy_from_slice(length), [INFO] [stdout] 448 | | value: Bytes::copy_from_slice(value)})); [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 446 ~ Ok((data ,EdtData{data_type: Bytes::copy_from_slice(data_type), [INFO] [stdout] 447 + length: Bytes::copy_from_slice(length), [INFO] [stdout] 448 ~ value: Bytes::copy_from_slice(value)})) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> engug/src/parser.rs:450:24 [INFO] [stdout] | [INFO] [stdout] 450 | _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 450 - _ => return Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] 450 + _ => Err(nom::Err::Failure(nom::error::Error::new(data ,nom::error::ErrorKind::Not))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> engug/src/parser.rs:456:9 [INFO] [stdout] | [INFO] [stdout] 456 | let name; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `name` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 456 ~ [INFO] [stdout] 457 | //下面检查第一个数据是否为entry的key中要求的String类型 [INFO] [stdout] 458 ~ let name = match key.data_type.as_bytes() { [INFO] [stdout] 459 | b"\x02" => {let offset = if is_big_endian {key.value.as_bytes().get_u64() as usize} else {key.value.as_bytes().get_u64_le() as usize}; [INFO] [stdout] ... [INFO] [stdout] 463 | let target = &data_section[begin..end]; [INFO] [stdout] 464 ~ std::str::from_utf8(target).unwrap().to_string()}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> engug/src/parser.rs:549:21 [INFO] [stdout] | [INFO] [stdout] 549 | times = times + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `times += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> engug/src/transform.rs:25:22 [INFO] [stdout] | [INFO] [stdout] 25 | let offset = 0 as usize; [INFO] [stdout] | ^^^^^^^^^^ help: try: `0_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> engug/src/transform.rs:35:54 [INFO] [stdout] | [INFO] [stdout] 35 | let entry_values = value.get_entry_boxed(&key).expect("key exists because of the same origin").iter().map(|value| { [INFO] [stdout] | ^^^^ help: change this to: `key` [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: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:39:111 [INFO] [stdout] | [INFO] [stdout] 39 | ... IntegerValue::Byte(value) => EdtValue::Integer {len: 1, value: IntegerValue::Byte(value.clone())}, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [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: using `clone` on type `u16` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:40:111 [INFO] [stdout] | [INFO] [stdout] 40 | ... IntegerValue::Word(value) => EdtValue::Integer {len: 2, value: IntegerValue::Word(value.clone())}, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:41:115 [INFO] [stdout] | [INFO] [stdout] 41 | ... IntegerValue::Double(value) => EdtValue::Integer {len: 4, value: IntegerValue::Double(value.clone())}, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:42:111 [INFO] [stdout] | [INFO] [stdout] 42 | ... IntegerValue::Quad(value) => EdtValue::Integer {len: 8, value: IntegerValue::Quad(value.clone())} [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> engug/src/parser.rs:581:33 [INFO] [stdout] | [INFO] [stdout] 581 | let input = res[0].clone().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `res[0]` [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: using `clone` on type `f32` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:47:119 [INFO] [stdout] | [INFO] [stdout] 47 | ... FloatingValue::Single(value) => EdtValue::Floating { len: 4, value: FloatingValue::Single(value.clone())}, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:48:119 [INFO] [stdout] | [INFO] [stdout] 48 | ... FloatingValue::Double(value) => EdtValue::Floating { len: 8, value: FloatingValue::Double(value.clone())} [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> engug/src/parser.rs:584:34 [INFO] [stdout] | [INFO] [stdout] 584 | let output = res1[0].clone().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `res1[0]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> engug/src/parser.rs:592:32 [INFO] [stdout] | [INFO] [stdout] 592 | let lazy = res[0].clone().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `res[0]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:83:55 [INFO] [stdout] | [INFO] [stdout] 83 | let key = search_string(&strings, offset.clone(), len.clone()).expect("Edt key exists because of the same origin"); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try dereferencing it: `*offset` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:83:71 [INFO] [stdout] | [INFO] [stdout] 83 | let key = search_string(&strings, offset.clone(), len.clone()).expect("Edt key exists because of the same origin"); [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> engug/src/transform.rs:114:27 [INFO] [stdout] | [INFO] [stdout] 114 | fn search_string(strings: &Vec, offset: u64, len: u64) -> Option{ [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] 114 - fn search_string(strings: &Vec, offset: u64, len: u64) -> Option{ [INFO] [stdout] 114 + fn search_string(strings: &[String], offset: u64, len: u64) -> Option{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> engug/src/transform.rs:115:22 [INFO] [stdout] | [INFO] [stdout] 115 | let mut cursor = 0 as usize; [INFO] [stdout] | ^^^^^^^^^^ help: try: `0_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> engug/src/writer.rs:28:42 [INFO] [stdout] | [INFO] [stdout] 28 | fn write_header(&mut self, sections: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 28 - fn write_header(&mut self, sections: &Vec){ [INFO] [stdout] 28 + fn write_header(&mut self, sections: &[EdtSection]){ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> engug/src/writer.rs:53:50 [INFO] [stdout] | [INFO] [stdout] 53 | fn write_section_header(&mut self, sections: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 53 - fn write_section_header(&mut self, sections: &Vec){ [INFO] [stdout] 53 + fn write_section_header(&mut self, sections: &[EdtSection]){ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `u64` [INFO] [stdout] --> engug/src/writer.rs:56:36 [INFO] [stdout] | [INFO] [stdout] 56 | let mut total_offset:u64 = (24 + section_header_len).into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(24 + section_header_len)` [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: `u64` [INFO] [stdout] --> engug/src/writer.rs:68:34 [INFO] [stdout] | [INFO] [stdout] 68 | let tmp_offset:u64 = total_offset.into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `total_offset` [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: you seem to want to iterate on a map's values [INFO] [stdout] --> engug/src/writer.rs:85:32 [INFO] [stdout] | [INFO] [stdout] 85 | for (_, values) in entries { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 85 - for (_, values) in entries { [INFO] [stdout] 85 + for values in entries.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of a fallible conversion when an infallible one could be used [INFO] [stdout] --> engug/src/writer.rs:119:46 [INFO] [stdout] | [INFO] [stdout] 119 | let section_size:u64 = entry_len.try_into().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: converting `u8` to `u64` cannot fail [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions [INFO] [stdout] = note: `#[warn(clippy::unnecessary_fallible_conversions)]` on by default [INFO] [stdout] help: use [INFO] [stdout] | [INFO] [stdout] 119 - let section_size:u64 = entry_len.try_into().unwrap(); [INFO] [stdout] 119 + let section_size:u64 = entry_len.into(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u8` is unnecessary [INFO] [stdout] --> engug/src/writer.rs:165:32 [INFO] [stdout] | [INFO] [stdout] 165 | data_entry_body.put_u8(2 as u8); [INFO] [stdout] | ^^^^^^^ help: try: `2_u8` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> engug/src/writer.rs:184:43 [INFO] [stdout] | [INFO] [stdout] 184 | fn write_section(&mut self, sections: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 184 - fn write_section(&mut self, sections: &Vec){ [INFO] [stdout] 184 + fn write_section(&mut self, sections: &[EdtSection]){ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engug/src/writer.rs:219:46 [INFO] [stdout] | [INFO] [stdout] 219 | self.file.write_all(&(key_type as u8).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `key_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:221:50 [INFO] [stdout] | [INFO] [stdout] 221 | ... self.file.write_all(&(key_len as u64).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `key_len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:222:50 [INFO] [stdout] | [INFO] [stdout] 222 | ... self.file.write_all(&(key_offset_real as u64).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `key_offset_real` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:225:50 [INFO] [stdout] | [INFO] [stdout] 225 | ... self.file.write_all(&(key_len as u64).to_le_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `key_len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:226:50 [INFO] [stdout] | [INFO] [stdout] 226 | ... self.file.write_all(&(key_offset_real as u64).to_le_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `key_offset_real` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engug/src/writer.rs:231:54 [INFO] [stdout] | [INFO] [stdout] 231 | ... self.file.write_all(&(value_type as u8).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `value_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engug/src/writer.rs:233:54 [INFO] [stdout] | [INFO] [stdout] 233 | ... self.file.write_all(&(value_len as u8).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `value_len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:238:64 [INFO] [stdout] | [INFO] [stdout] 238 | ... IntegerValue::Quad(val) => *val as u64, [INFO] [stdout] | ^^^^^^^^^^^ help: try: `*val` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:261:62 [INFO] [stdout] | [INFO] [stdout] 261 | ... self.file.write_all(&(value_offset as u64).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `value_offset` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:264:62 [INFO] [stdout] | [INFO] [stdout] 264 | ... self.file.write_all(&(value_offset as u64).to_le_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `value_offset` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engug/src/writer.rs:270:54 [INFO] [stdout] | [INFO] [stdout] 270 | ... self.file.write_all(&(value_type as u8).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `value_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engug/src/writer.rs:272:54 [INFO] [stdout] | [INFO] [stdout] 272 | ... self.file.write_all(&(value_len as u8).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `value_len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> engug/src/writer.rs:275:67 [INFO] [stdout] | [INFO] [stdout] 275 | ... FloatingValue::Double(val) => *val as f64, [INFO] [stdout] | ^^^^^^^^^^^ help: try: `*val` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engug/src/writer.rs:296:54 [INFO] [stdout] | [INFO] [stdout] 296 | ... self.file.write_all(&(value_type as u8).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `value_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:300:58 [INFO] [stdout] | [INFO] [stdout] 300 | ... self.file.write_all(&(value_len as u64).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `value_len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:301:58 [INFO] [stdout] | [INFO] [stdout] 301 | ... self.file.write_all(&(value_offset as u64).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `value_offset` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:304:58 [INFO] [stdout] | [INFO] [stdout] 304 | ... self.file.write_all(&(value_len as u64).to_le_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `value_len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:305:58 [INFO] [stdout] | [INFO] [stdout] 305 | ... self.file.write_all(&(value_offset as u64).to_le_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `value_offset` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> engug/src/transform.rs:25:22 [INFO] [stdout] | [INFO] [stdout] 25 | let offset = 0 as usize; [INFO] [stdout] | ^^^^^^^^^^ help: try: `0_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> engug/src/transform.rs:35:54 [INFO] [stdout] | [INFO] [stdout] 35 | let entry_values = value.get_entry_boxed(&key).expect("key exists because of the same origin").iter().map(|value| { [INFO] [stdout] | ^^^^ help: change this to: `key` [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: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:39:111 [INFO] [stdout] | [INFO] [stdout] 39 | ... IntegerValue::Byte(value) => EdtValue::Integer {len: 1, value: IntegerValue::Byte(value.clone())}, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u16` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:40:111 [INFO] [stdout] | [INFO] [stdout] 40 | ... IntegerValue::Word(value) => EdtValue::Integer {len: 2, value: IntegerValue::Word(value.clone())}, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:41:115 [INFO] [stdout] | [INFO] [stdout] 41 | ... IntegerValue::Double(value) => EdtValue::Integer {len: 4, value: IntegerValue::Double(value.clone())}, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:42:111 [INFO] [stdout] | [INFO] [stdout] 42 | ... IntegerValue::Quad(value) => EdtValue::Integer {len: 8, value: IntegerValue::Quad(value.clone())} [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f32` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:47:119 [INFO] [stdout] | [INFO] [stdout] 47 | ... FloatingValue::Single(value) => EdtValue::Floating { len: 4, value: FloatingValue::Single(value.clone())}, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:48:119 [INFO] [stdout] | [INFO] [stdout] 48 | ... FloatingValue::Double(value) => EdtValue::Floating { len: 8, value: FloatingValue::Double(value.clone())} [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:83:55 [INFO] [stdout] | [INFO] [stdout] 83 | let key = search_string(&strings, offset.clone(), len.clone()).expect("Edt key exists because of the same origin"); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try dereferencing it: `*offset` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> engug/src/transform.rs:83:71 [INFO] [stdout] | [INFO] [stdout] 83 | let key = search_string(&strings, offset.clone(), len.clone()).expect("Edt key exists because of the same origin"); [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> engug/src/transform.rs:114:27 [INFO] [stdout] | [INFO] [stdout] 114 | fn search_string(strings: &Vec, offset: u64, len: u64) -> Option{ [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] 114 - fn search_string(strings: &Vec, offset: u64, len: u64) -> Option{ [INFO] [stdout] 114 + fn search_string(strings: &[String], offset: u64, len: u64) -> Option{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `usize` is unnecessary [INFO] [stdout] --> engug/src/transform.rs:115:22 [INFO] [stdout] | [INFO] [stdout] 115 | let mut cursor = 0 as usize; [INFO] [stdout] | ^^^^^^^^^^ help: try: `0_usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> engug/src/writer.rs:28:42 [INFO] [stdout] | [INFO] [stdout] 28 | fn write_header(&mut self, sections: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 28 - fn write_header(&mut self, sections: &Vec){ [INFO] [stdout] 28 + fn write_header(&mut self, sections: &[EdtSection]){ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> engug/src/writer.rs:53:50 [INFO] [stdout] | [INFO] [stdout] 53 | fn write_section_header(&mut self, sections: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 53 - fn write_section_header(&mut self, sections: &Vec){ [INFO] [stdout] 53 + fn write_section_header(&mut self, sections: &[EdtSection]){ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `u64` [INFO] [stdout] --> engug/src/writer.rs:56:36 [INFO] [stdout] | [INFO] [stdout] 56 | let mut total_offset:u64 = (24 + section_header_len).into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(24 + section_header_len)` [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: `u64` [INFO] [stdout] --> engug/src/writer.rs:68:34 [INFO] [stdout] | [INFO] [stdout] 68 | let tmp_offset:u64 = total_offset.into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `total_offset` [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: you seem to want to iterate on a map's values [INFO] [stdout] --> engug/src/writer.rs:85:32 [INFO] [stdout] | [INFO] [stdout] 85 | for (_, values) in entries { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 85 - for (_, values) in entries { [INFO] [stdout] 85 + for values in entries.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of a fallible conversion when an infallible one could be used [INFO] [stdout] --> engug/src/writer.rs:119:46 [INFO] [stdout] | [INFO] [stdout] 119 | let section_size:u64 = entry_len.try_into().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: converting `u8` to `u64` cannot fail [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions [INFO] [stdout] = note: `#[warn(clippy::unnecessary_fallible_conversions)]` on by default [INFO] [stdout] help: use [INFO] [stdout] | [INFO] [stdout] 119 - let section_size:u64 = entry_len.try_into().unwrap(); [INFO] [stdout] 119 + let section_size:u64 = entry_len.into(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u8` is unnecessary [INFO] [stdout] --> engug/src/writer.rs:165:32 [INFO] [stdout] | [INFO] [stdout] 165 | data_entry_body.put_u8(2 as u8); [INFO] [stdout] | ^^^^^^^ help: try: `2_u8` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> engug/src/writer.rs:184:43 [INFO] [stdout] | [INFO] [stdout] 184 | fn write_section(&mut self, sections: &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] help: change this to [INFO] [stdout] | [INFO] [stdout] 184 - fn write_section(&mut self, sections: &Vec){ [INFO] [stdout] 184 + fn write_section(&mut self, sections: &[EdtSection]){ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engug/src/writer.rs:219:46 [INFO] [stdout] | [INFO] [stdout] 219 | self.file.write_all(&(key_type as u8).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `key_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:221:50 [INFO] [stdout] | [INFO] [stdout] 221 | ... self.file.write_all(&(key_len as u64).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `key_len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:222:50 [INFO] [stdout] | [INFO] [stdout] 222 | ... self.file.write_all(&(key_offset_real as u64).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `key_offset_real` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:225:50 [INFO] [stdout] | [INFO] [stdout] 225 | ... self.file.write_all(&(key_len as u64).to_le_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `key_len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:226:50 [INFO] [stdout] | [INFO] [stdout] 226 | ... self.file.write_all(&(key_offset_real as u64).to_le_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `key_offset_real` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engug/src/writer.rs:231:54 [INFO] [stdout] | [INFO] [stdout] 231 | ... self.file.write_all(&(value_type as u8).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `value_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engug/src/writer.rs:233:54 [INFO] [stdout] | [INFO] [stdout] 233 | ... self.file.write_all(&(value_len as u8).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `value_len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:238:64 [INFO] [stdout] | [INFO] [stdout] 238 | ... IntegerValue::Quad(val) => *val as u64, [INFO] [stdout] | ^^^^^^^^^^^ help: try: `*val` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:261:62 [INFO] [stdout] | [INFO] [stdout] 261 | ... self.file.write_all(&(value_offset as u64).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `value_offset` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:264:62 [INFO] [stdout] | [INFO] [stdout] 264 | ... self.file.write_all(&(value_offset as u64).to_le_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `value_offset` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engug/src/writer.rs:270:54 [INFO] [stdout] | [INFO] [stdout] 270 | ... self.file.write_all(&(value_type as u8).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `value_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engug/src/writer.rs:272:54 [INFO] [stdout] | [INFO] [stdout] 272 | ... self.file.write_all(&(value_len as u8).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `value_len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> engug/src/writer.rs:275:67 [INFO] [stdout] | [INFO] [stdout] 275 | ... FloatingValue::Double(val) => *val as f64, [INFO] [stdout] | ^^^^^^^^^^^ help: try: `*val` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> engug/src/writer.rs:296:54 [INFO] [stdout] | [INFO] [stdout] 296 | ... self.file.write_all(&(value_type as u8).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `value_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:300:58 [INFO] [stdout] | [INFO] [stdout] 300 | ... self.file.write_all(&(value_len as u64).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `value_len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:301:58 [INFO] [stdout] | [INFO] [stdout] 301 | ... self.file.write_all(&(value_offset as u64).to_be_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `value_offset` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:304:58 [INFO] [stdout] | [INFO] [stdout] 304 | ... self.file.write_all(&(value_len as u64).to_le_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `value_len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> engug/src/writer.rs:305:58 [INFO] [stdout] | [INFO] [stdout] 305 | ... self.file.write_all(&(value_offset as u64).to_le_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `value_offset` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> engug/src/writer.rs:351:9 [INFO] [stdout] | [INFO] [stdout] 351 | / let mut sections = Vec::new(); [INFO] [stdout] 352 | | sections.push(section1); [INFO] [stdout] 353 | | sections.push(section2); [INFO] [stdout] | |________________________________^ help: consider using the `vec![]` macro: `let sections = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Checking tokio v1.36.0 [INFO] [stderr] Checking dadga v0.1.0 (/opt/rustwide/workdir/dadga) [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> dadga/src/adapter.rs:314:17 [INFO] [stdout] | [INFO] [stdout] 314 | assert!(!fs::metadata(format!("{}/{}", fsadapter1.runtime, tid)).is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(format!("{}/{}", fsadapter1.runtime, tid)).is_err()` [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] --> dadga/src/adapter.rs:407:17 [INFO] [stdout] | [INFO] [stdout] 407 | assert!(!fs::metadata(format!("{}/{}", fsadapter.runtime, tid)).is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(format!("{}/{}", fsadapter.runtime, tid)).is_err()` [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: struct `FsAdapter` is never constructed [INFO] [stdout] --> dadga/src/adapter.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct FsAdapter{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> dadga/src/adapter.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 15 | impl FsAdapter{ [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn new(root: &str, client: bool) -> Result> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub async fn read_file(&self, path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub async fn read_persistent(&self, path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn create_task(&mut self, taskid: &str) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn task_done(&mut self, taskid: &str) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub async fn read_task_file(&self, taskid: &str, path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | pub async fn write_file(&self, path: &str, content: &[u8]) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub async fn write_file_exclusive(&self, path: &str, content: &[u8]) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub async fn write_file_append(&self, path: &str, content: &[u8]) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub async fn write_persistent(&self, path: &str, content: &[u8]) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub async fn write_persistent_exclusive(&self, path: &str, content: &[u8]) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub async fn write_persistent_append(&self, path: &str, content: &[u8]) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 163 | pub async fn write_task_file(&self, taskid: &str, path: &str, content: &[u8]) -> Result<(), ioError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | pub async fn write_task_file_exclusive(&self, taskid: &str, path: &str, content: &[u8]) -> Result<(), ioError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | pub async fn write_task_file_append(&self, taskid: &str, path: &str, content: &[u8]) -> Result<(), ioError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | pub async fn remove_file(&self, path: &str) -> Result<(), ioError> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | pub async fn remove_persistent(&self, path: &str) -> Result<(), ioError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub async fn remove_task_file(&self, taskid: &str, path: &str) -> Result<(), ioError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 236 | pub async fn persistent_to_runtime(&self, persistent: &str, taskid: &str, task_path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | pub async fn runtime_to_persistent(&self, persistent: &str, taskid: &str, task_path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.90s [INFO] running `Command { std: "docker" "inspect" "b103fdf4127477640205093e04035b360f3527101537e69943e05473c5c863c6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b103fdf4127477640205093e04035b360f3527101537e69943e05473c5c863c6", kill_on_drop: false }` [INFO] [stdout] b103fdf4127477640205093e04035b360f3527101537e69943e05473c5c863c6