[INFO] crate needletail 0.2.2 is already in cache [INFO] extracting crate needletail 0.2.2 into work/ex/clippy-test-run/sources/stable/reg/needletail/0.2.2 [INFO] extracting crate needletail 0.2.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/needletail/0.2.2 [INFO] validating manifest of needletail-0.2.2 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of needletail-0.2.2 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing needletail-0.2.2 [INFO] finished frobbing needletail-0.2.2 [INFO] frobbed toml for needletail-0.2.2 written to work/ex/clippy-test-run/sources/stable/reg/needletail/0.2.2/Cargo.toml [INFO] started frobbing needletail-0.2.2 [INFO] finished frobbing needletail-0.2.2 [INFO] frobbed toml for needletail-0.2.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/needletail/0.2.2/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting needletail-0.2.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/needletail/0.2.2:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] e70bc6cf04de16de856a98c23da3c527c3df72e24740f3633353eb3e4d0a88f8 [INFO] running `"docker" "start" "-a" "e70bc6cf04de16de856a98c23da3c527c3df72e24740f3633353eb3e4d0a88f8"` [INFO] [stderr] Compiling lzma-sys v0.1.13 [INFO] [stderr] Checking zip v0.4.2 [INFO] [stderr] Checking xz2 v0.1.6 [INFO] [stderr] Checking needletail v0.2.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/fastx.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/fastx.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | seq: seq, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/fastx.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/fastx.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | seq: seq, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/fastx.rs:174:13 [INFO] [stderr] | [INFO] [stderr] 174 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/fastx.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | seq: seq, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/fastx.rs:176:13 [INFO] [stderr] | [INFO] [stderr] 176 | qual: qual, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `qual` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/bitkmer.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | start_pos: start_pos, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `start_pos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/bitkmer.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | canonical: canonical, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `canonical` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/seq.rs:18:44 [INFO] [stderr] | [INFO] [stderr] 18 | SeqRecord { id: Cow::Borrowed(id), seq: seq, qual: qual.map(Cow::Borrowed), rev_seq: None } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/seq.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | seq: seq, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/seq.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | k: k, [INFO] [stderr] | ^^^^ help: replace it with: `k` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/seq.rs:137:13 [INFO] [stderr] | [INFO] [stderr] 137 | start_pos: start_pos, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `start_pos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/seq.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | buffer: buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/seq.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | rc_buffer: rc_buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rc_buffer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/buffer.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/buffer.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | buf: buf, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/fastx.rs:174:13 [INFO] [stderr] | [INFO] [stderr] 174 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/fastx.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | seq: seq, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/fastx.rs:176:13 [INFO] [stderr] | [INFO] [stderr] 176 | qual: qual, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `qual` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/bitkmer.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | start_pos: start_pos, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `start_pos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/bitkmer.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | canonical: canonical, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `canonical` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/seq.rs:18:44 [INFO] [stderr] | [INFO] [stderr] 18 | SeqRecord { id: Cow::Borrowed(id), seq: seq, qual: qual.map(Cow::Borrowed), rev_seq: None } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/seq.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | seq: seq, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/seq.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | k: k, [INFO] [stderr] | ^^^^ help: replace it with: `k` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/seq.rs:137:13 [INFO] [stderr] | [INFO] [stderr] 137 | start_pos: start_pos, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `start_pos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/seq.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | buffer: buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/seq.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | rc_buffer: rc_buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rc_buffer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/buffer.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/buffer.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | buf: buf, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:159:33 [INFO] [stderr] | [INFO] [stderr] 159 | new_kmer = (new_kmer >> 2 & 0x3333333333333333) | (new_kmer & 0x3333333333333333) << 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x3333_3333_3333_3333` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:159:67 [INFO] [stderr] | [INFO] [stderr] 159 | new_kmer = (new_kmer >> 2 & 0x3333333333333333) | (new_kmer & 0x3333333333333333) << 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x3333_3333_3333_3333` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:160:33 [INFO] [stderr] | [INFO] [stderr] 160 | new_kmer = (new_kmer >> 4 & 0x0F0F0F0F0F0F0F0F) | (new_kmer & 0x0F0F0F0F0F0F0F0F) << 4; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0F0F_0F0F_0F0F_0F0F` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:160:67 [INFO] [stderr] | [INFO] [stderr] 160 | new_kmer = (new_kmer >> 4 & 0x0F0F0F0F0F0F0F0F) | (new_kmer & 0x0F0F0F0F0F0F0F0F) << 4; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0F0F_0F0F_0F0F_0F0F` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:161:33 [INFO] [stderr] | [INFO] [stderr] 161 | new_kmer = (new_kmer >> 8 & 0x00FF00FF00FF00FF) | (new_kmer & 0x00FF00FF00FF00FF) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x00FF_00FF_00FF_00FF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:161:67 [INFO] [stderr] | [INFO] [stderr] 161 | new_kmer = (new_kmer >> 8 & 0x00FF00FF00FF00FF) | (new_kmer & 0x00FF00FF00FF00FF) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x00FF_00FF_00FF_00FF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:162:34 [INFO] [stderr] | [INFO] [stderr] 162 | new_kmer = (new_kmer >> 16 & 0x0000FFFF0000FFFF) | (new_kmer & 0x0000FFFF0000FFFF) << 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0000_FFFF_0000_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:162:68 [INFO] [stderr] | [INFO] [stderr] 162 | new_kmer = (new_kmer >> 16 & 0x0000FFFF0000FFFF) | (new_kmer & 0x0000FFFF0000FFFF) << 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0000_FFFF_0000_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:163:34 [INFO] [stderr] | [INFO] [stderr] 163 | new_kmer = (new_kmer >> 32 & 0x00000000FFFFFFFF) | (new_kmer & 0x00000000FFFFFFFF) << 32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0000_0000_FFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:163:68 [INFO] [stderr] | [INFO] [stderr] 163 | new_kmer = (new_kmer >> 32 & 0x00000000FFFFFFFF) | (new_kmer & 0x00000000FFFFFFFF) << 32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0000_0000_FFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:165:17 [INFO] [stderr] | [INFO] [stderr] 165 | new_kmer ^= 0xFFFFFFFFFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xFFFF_FFFF_FFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:159:33 [INFO] [stderr] | [INFO] [stderr] 159 | new_kmer = (new_kmer >> 2 & 0x3333333333333333) | (new_kmer & 0x3333333333333333) << 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x3333_3333_3333_3333` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:159:67 [INFO] [stderr] | [INFO] [stderr] 159 | new_kmer = (new_kmer >> 2 & 0x3333333333333333) | (new_kmer & 0x3333333333333333) << 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x3333_3333_3333_3333` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:160:33 [INFO] [stderr] | [INFO] [stderr] 160 | new_kmer = (new_kmer >> 4 & 0x0F0F0F0F0F0F0F0F) | (new_kmer & 0x0F0F0F0F0F0F0F0F) << 4; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0F0F_0F0F_0F0F_0F0F` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:160:67 [INFO] [stderr] | [INFO] [stderr] 160 | new_kmer = (new_kmer >> 4 & 0x0F0F0F0F0F0F0F0F) | (new_kmer & 0x0F0F0F0F0F0F0F0F) << 4; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0F0F_0F0F_0F0F_0F0F` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:161:33 [INFO] [stderr] | [INFO] [stderr] 161 | new_kmer = (new_kmer >> 8 & 0x00FF00FF00FF00FF) | (new_kmer & 0x00FF00FF00FF00FF) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x00FF_00FF_00FF_00FF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:161:67 [INFO] [stderr] | [INFO] [stderr] 161 | new_kmer = (new_kmer >> 8 & 0x00FF00FF00FF00FF) | (new_kmer & 0x00FF00FF00FF00FF) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x00FF_00FF_00FF_00FF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:162:34 [INFO] [stderr] | [INFO] [stderr] 162 | new_kmer = (new_kmer >> 16 & 0x0000FFFF0000FFFF) | (new_kmer & 0x0000FFFF0000FFFF) << 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0000_FFFF_0000_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:162:68 [INFO] [stderr] | [INFO] [stderr] 162 | new_kmer = (new_kmer >> 16 & 0x0000FFFF0000FFFF) | (new_kmer & 0x0000FFFF0000FFFF) << 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0000_FFFF_0000_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:163:34 [INFO] [stderr] | [INFO] [stderr] 163 | new_kmer = (new_kmer >> 32 & 0x00000000FFFFFFFF) | (new_kmer & 0x00000000FFFFFFFF) << 32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0000_0000_FFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:163:68 [INFO] [stderr] | [INFO] [stderr] 163 | new_kmer = (new_kmer >> 32 & 0x00000000FFFFFFFF) | (new_kmer & 0x00000000FFFFFFFF) << 32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0000_0000_FFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:165:17 [INFO] [stderr] | [INFO] [stderr] 165 | new_kmer ^= 0xFFFFFFFFFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xFFFF_FFFF_FFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:173:34 [INFO] [stderr] | [INFO] [stderr] 173 | assert_eq!(reverse_complement((0b000000, 3)).0, 0b111111); [INFO] [stderr] | ^^^^^^^^ help: consider: `0b00_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:173:51 [INFO] [stderr] | [INFO] [stderr] 173 | assert_eq!(reverse_complement((0b000000, 3)).0, 0b111111); [INFO] [stderr] | ^^^^^^^^ help: consider: `0b11_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:174:34 [INFO] [stderr] | [INFO] [stderr] 174 | assert_eq!(reverse_complement((0b111111, 3)).0, 0b000000); [INFO] [stderr] | ^^^^^^^^ help: consider: `0b11_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:174:51 [INFO] [stderr] | [INFO] [stderr] 174 | assert_eq!(reverse_complement((0b111111, 3)).0, 0b000000); [INFO] [stderr] | ^^^^^^^^ help: consider: `0b00_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:175:34 [INFO] [stderr] | [INFO] [stderr] 175 | assert_eq!(reverse_complement((0b00000000, 4)).0, 0b11111111); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:175:53 [INFO] [stderr] | [INFO] [stderr] 175 | assert_eq!(reverse_complement((0b00000000, 4)).0, 0b11111111); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1111_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:176:34 [INFO] [stderr] | [INFO] [stderr] 176 | assert_eq!(reverse_complement((0b00011011, 4)).0, 0b00011011); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_1011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:176:53 [INFO] [stderr] | [INFO] [stderr] 176 | assert_eq!(reverse_complement((0b00011011, 4)).0, 0b00011011); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_1011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:211:27 [INFO] [stderr] | [INFO] [stderr] 211 | assert_eq!(minimizer((0b001011, 3), 2).0, 0b0010); [INFO] [stderr] | ^^^^^^^^ help: consider: `0b00_1011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:212:27 [INFO] [stderr] | [INFO] [stderr] 212 | assert_eq!(minimizer((0b001011, 3), 1).0, 0b00); [INFO] [stderr] | ^^^^^^^^ help: consider: `0b00_1011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:213:27 [INFO] [stderr] | [INFO] [stderr] 213 | assert_eq!(minimizer((0b11000011, 4), 2).0, 0b0000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitkmer.rs:214:27 [INFO] [stderr] | [INFO] [stderr] 214 | assert_eq!(minimizer((0b110001, 3), 2).0, 0b0001); [INFO] [stderr] | ^^^^^^^^ help: consider: `0b11_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: method is never used: `from_bytes` [INFO] [stderr] --> src/buffer.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn from_bytes(data: &'a [u8]) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/fastx.rs:57:12 [INFO] [stderr] | [INFO] [stderr] 57 | if buf.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `buf.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/fastx.rs:67:12 [INFO] [stderr] | [INFO] [stderr] 67 | if raw_id.len() > 0 && raw_id[raw_id.len() - 1] == b'\r' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!raw_id.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/fastx.rs:149:16 [INFO] [stderr] | [INFO] [stderr] 149 | if !(qual_end == buf.len() + 1 + windows_ending) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `qual_end != buf.len() + 1 + windows_ending` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/fastx.rs:158:12 [INFO] [stderr] | [INFO] [stderr] 158 | if raw_id.len() > 0 && raw_id[raw_id.len() - 1] == b'\r' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!raw_id.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/fastx.rs:163:12 [INFO] [stderr] | [INFO] [stderr] 163 | if qual.len() > 0 && qual[qual.len() - 1] == b'\r' { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!qual.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/fastx.rs:223:34 [INFO] [stderr] | [INFO] [stderr] 223 | SeqRecord::new(fasta.id, Cow::from(strip_whitespace(fasta.seq)), None) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Cow::from()`: `strip_whitespace(fasta.seq)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/fastx.rs:235:66 [INFO] [stderr] | [INFO] [stderr] 235 | fn fastx_reader(reader: &mut R, first_byte: Option, ref mut callback: F, type_callback: Option<&mut T>) -> Result<(), ParseError> [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/fastx.rs:244:13 [INFO] [stderr] | [INFO] [stderr] 244 | reader.read(&mut first)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/fastx.rs:295:44 [INFO] [stderr] | [INFO] [stderr] 295 | pub fn fastx_bytes<'b, F>(bytes: &'b [u8], ref mut callback: F) -> Result<(), ParseError> [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/fastx.rs:304:45 [INFO] [stderr] | [INFO] [stderr] 304 | pub fn fastx_stream(mut reader: R, ref mut type_callback: T, ref mut callback: F) -> Result<(), ParseError> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/fastx.rs:304:71 [INFO] [stderr] | [INFO] [stderr] 304 | pub fn fastx_stream(mut reader: R, ref mut type_callback: T, ref mut callback: F) -> Result<(), ParseError> [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/fastx.rs:313:5 [INFO] [stderr] | [INFO] [stderr] 313 | reader.read(&mut first)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/fastx.rs:315:9 [INFO] [stderr] | [INFO] [stderr] 315 | reader.read(&mut first)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/fastx.rs:323:9 [INFO] [stderr] | [INFO] [stderr] 323 | reader.read(&mut first)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/fastx.rs:331:9 [INFO] [stderr] | [INFO] [stderr] 331 | reader.read(&mut first)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/fastx.rs:339:9 [INFO] [stderr] | [INFO] [stderr] 339 | reader.read(&mut first)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/fastx.rs:358:40 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn fastx_cli(filename: &str, ref mut type_callback: T, ref mut callback: F) -> Result<(), ParseError> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/fastx.rs:358:66 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn fastx_cli(filename: &str, ref mut type_callback: T, ref mut callback: F) -> Result<(), ParseError> [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/kmer.rs:9:22 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn complement(n: &u8) -> u8 { [INFO] [stderr] | ^^^ help: consider passing by value instead: `u8` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:14:16 [INFO] [stderr] | [INFO] [stderr] 14 | 'a' => 't' as u8, 'A' => 'T' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b't' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:14:34 [INFO] [stderr] | [INFO] [stderr] 14 | 'a' => 't' as u8, 'A' => 'T' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'T' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:15:16 [INFO] [stderr] | [INFO] [stderr] 15 | 'c' => 'g' as u8, 'C' => 'G' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'g' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:15:34 [INFO] [stderr] | [INFO] [stderr] 15 | 'c' => 'g' as u8, 'C' => 'G' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'G' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:16:16 [INFO] [stderr] | [INFO] [stderr] 16 | 'g' => 'c' as u8, 'G' => 'C' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'c' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:16:34 [INFO] [stderr] | [INFO] [stderr] 16 | 'g' => 'c' as u8, 'G' => 'C' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'C' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:17:16 [INFO] [stderr] | [INFO] [stderr] 17 | 't' => 'a' as u8, 'T' => 'A' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'a' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | 't' => 'a' as u8, 'T' => 'A' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | 'r' => 'y' as u8, 'y' => 'r' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'y' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:20:34 [INFO] [stderr] | [INFO] [stderr] 20 | 'r' => 'y' as u8, 'y' => 'r' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'r' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | 'k' => 'm' as u8, 'm' => 'k' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'm' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:21:34 [INFO] [stderr] | [INFO] [stderr] 21 | 'k' => 'm' as u8, 'm' => 'k' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'k' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:22:16 [INFO] [stderr] | [INFO] [stderr] 22 | 'b' => 'v' as u8, 'v' => 'b' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'v' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:22:34 [INFO] [stderr] | [INFO] [stderr] 22 | 'b' => 'v' as u8, 'v' => 'b' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'b' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | 'd' => 'h' as u8, 'h' => 'd' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'h' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:23:34 [INFO] [stderr] | [INFO] [stderr] 23 | 'd' => 'h' as u8, 'h' => 'd' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'd' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:24:16 [INFO] [stderr] | [INFO] [stderr] 24 | 's' => 's' as u8, 'w' => 'w' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b's' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:24:34 [INFO] [stderr] | [INFO] [stderr] 24 | 's' => 's' as u8, 'w' => 'w' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'w' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:25:16 [INFO] [stderr] | [INFO] [stderr] 25 | 'R' => 'Y' as u8, 'Y' => 'R' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'Y' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:25:34 [INFO] [stderr] | [INFO] [stderr] 25 | 'R' => 'Y' as u8, 'Y' => 'R' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'R' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:26:16 [INFO] [stderr] | [INFO] [stderr] 26 | 'K' => 'M' as u8, 'M' => 'K' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'M' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:26:34 [INFO] [stderr] | [INFO] [stderr] 26 | 'K' => 'M' as u8, 'M' => 'K' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'K' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:27:16 [INFO] [stderr] | [INFO] [stderr] 27 | 'B' => 'V' as u8, 'V' => 'B' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'V' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:27:34 [INFO] [stderr] | [INFO] [stderr] 27 | 'B' => 'V' as u8, 'V' => 'B' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'B' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:28:16 [INFO] [stderr] | [INFO] [stderr] 28 | 'D' => 'H' as u8, 'H' => 'D' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'H' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:28:34 [INFO] [stderr] | [INFO] [stderr] 28 | 'D' => 'H' as u8, 'H' => 'D' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'D' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:29:16 [INFO] [stderr] | [INFO] [stderr] 29 | 'S' => 'S' as u8, 'W' => 'W' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'S' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:29:34 [INFO] [stderr] | [INFO] [stderr] 29 | 'S' => 'S' as u8, 'W' => 'W' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'W' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/kmer.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | / pub fn normalize<'a>(seq: &'a [u8], iupac: bool) -> Vec { [INFO] [stderr] 46 | | //! Transform a FASTX sequence into it's "normalized" form. [INFO] [stderr] 47 | | //! [INFO] [stderr] 48 | | //! The normalized form is: [INFO] [stderr] ... | [INFO] [stderr] 88 | | buf [INFO] [stderr] 89 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:63:25 [INFO] [stderr] | [INFO] [stderr] 63 | ('a', _) => 'A' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:64:25 [INFO] [stderr] | [INFO] [stderr] 64 | ('c', _) => 'C' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'C' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:65:25 [INFO] [stderr] | [INFO] [stderr] 65 | ('g', _) => 'G' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'G' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:67:47 [INFO] [stderr] | [INFO] [stderr] 67 | ('t', _) | ('u', _) | ('U', _) => 'T' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'T' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:68:47 [INFO] [stderr] | [INFO] [stderr] 68 | ('-', _) | ('~', _) | (' ', _) => '.' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'.' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:75:28 [INFO] [stderr] | [INFO] [stderr] 75 | ('b', true) => 'B' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'B' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:76:28 [INFO] [stderr] | [INFO] [stderr] 76 | ('d', true) => 'D' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'D' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:77:28 [INFO] [stderr] | [INFO] [stderr] 77 | ('h', true) => 'H' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'H' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:78:28 [INFO] [stderr] | [INFO] [stderr] 78 | ('v', true) => 'V' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'V' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:79:28 [INFO] [stderr] | [INFO] [stderr] 79 | ('r', true) => 'R' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'R' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:80:28 [INFO] [stderr] | [INFO] [stderr] 80 | ('y', true) => 'Y' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'Y' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:81:28 [INFO] [stderr] | [INFO] [stderr] 81 | ('s', true) => 'S' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'S' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:82:28 [INFO] [stderr] | [INFO] [stderr] 82 | ('w', true) => 'W' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'W' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:83:28 [INFO] [stderr] | [INFO] [stderr] 83 | ('k', true) => 'K' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'K' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:84:28 [INFO] [stderr] | [INFO] [stderr] 84 | ('m', true) => 'M' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'M' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:85:18 [INFO] [stderr] | [INFO] [stderr] 85 | _ => 'N' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'N' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/kmer.rs:104:1 [INFO] [stderr] | [INFO] [stderr] 104 | / pub fn canonical<'a>(seq: &'a [u8]) -> Cow<'a, [u8]> { [INFO] [stderr] 105 | | //! Taking in a sequence string, return the canonical form of the sequence [INFO] [stderr] 106 | | //! (e.g. the lexigraphically lowest of either the original sequence or its [INFO] [stderr] 107 | | //! reverse complement) [INFO] [stderr] ... | [INFO] [stderr] 130 | | } [INFO] [stderr] 131 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/kmer.rs:116:23 [INFO] [stderr] | [INFO] [stderr] 116 | if !enough && n < &rn { [INFO] [stderr] | ^^^^--- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `rn` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of left operand [INFO] [stderr] --> src/kmer.rs:119:30 [INFO] [stderr] | [INFO] [stderr] 119 | } else if !enough && &rn < n { [INFO] [stderr] | ---^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: use the left value directly: `rn` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/kmer.rs:145:1 [INFO] [stderr] | [INFO] [stderr] 145 | / pub fn minimizer<'a>(seq: &'a [u8], length: usize) -> Cow<'a, [u8]> { [INFO] [stderr] 146 | | let reverse_complement: Vec = seq.iter().rev().map(|n| complement(n)).collect(); [INFO] [stderr] 147 | | let mut minmer = Cow::Borrowed(&seq[..length]); [INFO] [stderr] 148 | | [INFO] [stderr] ... | [INFO] [stderr] 157 | | minmer [INFO] [stderr] 158 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/kmer.rs:150:12 [INFO] [stderr] | [INFO] [stderr] 150 | if kmer < &minmer[..] { [INFO] [stderr] | ^^^^^^^----------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `minmer[..]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/kmer.rs:153:12 [INFO] [stderr] | [INFO] [stderr] 153 | if rc_kmer < &minmer[..] { [INFO] [stderr] | ^^^^^^^^^^----------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `minmer[..]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/kmer.rs:178:1 [INFO] [stderr] | [INFO] [stderr] 178 | / pub fn has_no_n<'a>(seq: &'a [u8]) -> bool { [INFO] [stderr] 179 | | //! Determines if a sequence has any non-primary four bases [INFO] [stderr] 180 | | //! characters in it [INFO] [stderr] 181 | | seq.iter().all(|n| is_good_base(*n)) [INFO] [stderr] 182 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/bitkmer.rs:6:46 [INFO] [stderr] | [INFO] [stderr] 6 | fn extend_kmer(kmer: &mut BitKmer, new_char: &u8) -> bool { [INFO] [stderr] | ^^^ help: consider passing by value instead: `u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bitkmer.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | / match new_char { [INFO] [stderr] 9 | | &b'A' | &b'a' => new_char_int = 0 as BitKmerSeq, [INFO] [stderr] 10 | | &b'C' | &b'c' => new_char_int = 1 as BitKmerSeq, [INFO] [stderr] 11 | | &b'G' | &b'g' => new_char_int = 2 as BitKmerSeq, [INFO] [stderr] 12 | | &b'T' | &b't' => new_char_int = 3 as BitKmerSeq, [INFO] [stderr] 13 | | _ => return false, [INFO] [stderr] 14 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 8 | match *new_char { [INFO] [stderr] 9 | b'A' | b'a' => new_char_int = 0 as BitKmerSeq, [INFO] [stderr] 10 | b'C' | b'c' => new_char_int = 1 as BitKmerSeq, [INFO] [stderr] 11 | b'G' | b'g' => new_char_int = 2 as BitKmerSeq, [INFO] [stderr] 12 | b'T' | b't' => new_char_int = 3 as BitKmerSeq, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/bitkmer.rs:18:45 [INFO] [stderr] | [INFO] [stderr] 18 | kmer.0 = new_kmer & (BitKmerSeq::pow(2, (2 * kmer.1) as u32) - 1) as BitKmerSeq; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(2 * kmer.1)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/bitkmer.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / let mut stop_len = kmer.1 as usize; [INFO] [stderr] 30 | | if initial { [INFO] [stderr] 31 | | kmer_len = 0; [INFO] [stderr] 32 | | stop_len = (kmer.1 - 1) as usize; [INFO] [stderr] 33 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let stop_len = if initial { ..; (kmer.1 - 1) as usize } else { kmer.1 as usize };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/bitkmer.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | new_kmer = new_kmer >> (2 * (32 - kmer.1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `new_kmer >>= (2 * (32 - kmer.1))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/bitkmer.rs:194:39 [INFO] [stderr] | [INFO] [stderr] 194 | let bitmask = (BitKmerSeq::pow(2, (2 * minmer_size) as u32) - 1) as BitKmerSeq; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(2 * minmer_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/bitkmer.rs:195:14 [INFO] [stderr] | [INFO] [stderr] 195 | for _ in 0..(kmer.1 - minmer_size + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=kmer.1 - minmer_size` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/bitkmer.rs:224:38 [INFO] [stderr] | [INFO] [stderr] 224 | let bitmask = BitKmerSeq::pow(2, (2 * kmer.1 - 1) as u32) + BitKmerSeq::pow(2, (2 * kmer.1 - 2) as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(2 * kmer.1 - 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/bitkmer.rs:224:84 [INFO] [stderr] | [INFO] [stderr] 224 | let bitmask = BitKmerSeq::pow(2, (2 * kmer.1 - 1) as u32) + BitKmerSeq::pow(2, (2 * kmer.1 - 2) as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(2 * kmer.1 - 2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/seq.rs:29:31 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn quality_mask(self, ref score: u8) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/seq.rs:43:21 [INFO] [stderr] | [INFO] [stderr] 43 | base.clone() [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*base` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/seq.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | / pub fn bit_kmers<'b>(&'b self, k: u8, canonical: bool) -> BitNuclKmer<'b> { [INFO] [stderr] 79 | | BitNuclKmer::new(&self.seq, k, canonical) [INFO] [stderr] 80 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/seq.rs:110:5 [INFO] [stderr] | [INFO] [stderr] 110 | / let mut stop_len = k as usize; [INFO] [stderr] 111 | | if initial { [INFO] [stderr] 112 | | kmer_len = 0; [INFO] [stderr] 113 | | stop_len = (k - 1) as usize; [INFO] [stderr] 114 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let stop_len = if initial { ..; (k - 1) as usize } else { k as usize };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/buffer.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | / pub fn get_buffer<'b, T>(&'b self) -> RecBuffer<'b, T> { [INFO] [stderr] 67 | | RecBuffer { [INFO] [stderr] 68 | | buf: &self.buf, [INFO] [stderr] 69 | | pos: 0, [INFO] [stderr] ... | [INFO] [stderr] 72 | | } [INFO] [stderr] 73 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/util.rs:63:1 [INFO] [stderr] | [INFO] [stderr] 63 | / pub fn strip_whitespace<'a>(seq: &'a [u8]) -> Cow<'a, [u8]> { [INFO] [stderr] 64 | | let mut new_buf = Vec::with_capacity(seq.len()); [INFO] [stderr] 65 | | let mut i = 0; [INFO] [stderr] 66 | | while i < seq.len() { [INFO] [stderr] ... | [INFO] [stderr] 78 | | Cow::Owned(new_buf) [INFO] [stderr] 79 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `needletail`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/fastx.rs:698:13 [INFO] [stderr] | [INFO] [stderr] 698 | for s in rec_buffer.by_ref() { [INFO] [stderr] | ^ help: consider using `_s` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/fastx.rs:57:12 [INFO] [stderr] | [INFO] [stderr] 57 | if buf.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `buf.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/fastx.rs:67:12 [INFO] [stderr] | [INFO] [stderr] 67 | if raw_id.len() > 0 && raw_id[raw_id.len() - 1] == b'\r' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!raw_id.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/fastx.rs:149:16 [INFO] [stderr] | [INFO] [stderr] 149 | if !(qual_end == buf.len() + 1 + windows_ending) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `qual_end != buf.len() + 1 + windows_ending` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/fastx.rs:158:12 [INFO] [stderr] | [INFO] [stderr] 158 | if raw_id.len() > 0 && raw_id[raw_id.len() - 1] == b'\r' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!raw_id.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/fastx.rs:163:12 [INFO] [stderr] | [INFO] [stderr] 163 | if qual.len() > 0 && qual[qual.len() - 1] == b'\r' { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!qual.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/fastx.rs:223:34 [INFO] [stderr] | [INFO] [stderr] 223 | SeqRecord::new(fasta.id, Cow::from(strip_whitespace(fasta.seq)), None) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Cow::from()`: `strip_whitespace(fasta.seq)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/fastx.rs:235:66 [INFO] [stderr] | [INFO] [stderr] 235 | fn fastx_reader(reader: &mut R, first_byte: Option, ref mut callback: F, type_callback: Option<&mut T>) -> Result<(), ParseError> [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/fastx.rs:244:13 [INFO] [stderr] | [INFO] [stderr] 244 | reader.read(&mut first)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/fastx.rs:295:44 [INFO] [stderr] | [INFO] [stderr] 295 | pub fn fastx_bytes<'b, F>(bytes: &'b [u8], ref mut callback: F) -> Result<(), ParseError> [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/fastx.rs:304:45 [INFO] [stderr] | [INFO] [stderr] 304 | pub fn fastx_stream(mut reader: R, ref mut type_callback: T, ref mut callback: F) -> Result<(), ParseError> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/fastx.rs:304:71 [INFO] [stderr] | [INFO] [stderr] 304 | pub fn fastx_stream(mut reader: R, ref mut type_callback: T, ref mut callback: F) -> Result<(), ParseError> [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/fastx.rs:313:5 [INFO] [stderr] | [INFO] [stderr] 313 | reader.read(&mut first)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/fastx.rs:315:9 [INFO] [stderr] | [INFO] [stderr] 315 | reader.read(&mut first)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/fastx.rs:323:9 [INFO] [stderr] | [INFO] [stderr] 323 | reader.read(&mut first)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/fastx.rs:331:9 [INFO] [stderr] | [INFO] [stderr] 331 | reader.read(&mut first)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/fastx.rs:339:9 [INFO] [stderr] | [INFO] [stderr] 339 | reader.read(&mut first)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/fastx.rs:358:40 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn fastx_cli(filename: &str, ref mut type_callback: T, ref mut callback: F) -> Result<(), ParseError> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/fastx.rs:358:66 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn fastx_cli(filename: &str, ref mut type_callback: T, ref mut callback: F) -> Result<(), ParseError> [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/kmer.rs:9:22 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn complement(n: &u8) -> u8 { [INFO] [stderr] | ^^^ help: consider passing by value instead: `u8` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:14:16 [INFO] [stderr] | [INFO] [stderr] 14 | 'a' => 't' as u8, 'A' => 'T' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b't' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:14:34 [INFO] [stderr] | [INFO] [stderr] 14 | 'a' => 't' as u8, 'A' => 'T' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'T' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:15:16 [INFO] [stderr] | [INFO] [stderr] 15 | 'c' => 'g' as u8, 'C' => 'G' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'g' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:15:34 [INFO] [stderr] | [INFO] [stderr] 15 | 'c' => 'g' as u8, 'C' => 'G' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'G' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:16:16 [INFO] [stderr] | [INFO] [stderr] 16 | 'g' => 'c' as u8, 'G' => 'C' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'c' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:16:34 [INFO] [stderr] | [INFO] [stderr] 16 | 'g' => 'c' as u8, 'G' => 'C' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'C' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:17:16 [INFO] [stderr] | [INFO] [stderr] 17 | 't' => 'a' as u8, 'T' => 'A' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'a' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | 't' => 'a' as u8, 'T' => 'A' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | 'r' => 'y' as u8, 'y' => 'r' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'y' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:20:34 [INFO] [stderr] | [INFO] [stderr] 20 | 'r' => 'y' as u8, 'y' => 'r' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'r' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | 'k' => 'm' as u8, 'm' => 'k' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'm' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:21:34 [INFO] [stderr] | [INFO] [stderr] 21 | 'k' => 'm' as u8, 'm' => 'k' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'k' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:22:16 [INFO] [stderr] | [INFO] [stderr] 22 | 'b' => 'v' as u8, 'v' => 'b' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'v' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:22:34 [INFO] [stderr] | [INFO] [stderr] 22 | 'b' => 'v' as u8, 'v' => 'b' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'b' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | 'd' => 'h' as u8, 'h' => 'd' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'h' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:23:34 [INFO] [stderr] | [INFO] [stderr] 23 | 'd' => 'h' as u8, 'h' => 'd' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'd' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:24:16 [INFO] [stderr] | [INFO] [stderr] 24 | 's' => 's' as u8, 'w' => 'w' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b's' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:24:34 [INFO] [stderr] | [INFO] [stderr] 24 | 's' => 's' as u8, 'w' => 'w' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'w' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:25:16 [INFO] [stderr] | [INFO] [stderr] 25 | 'R' => 'Y' as u8, 'Y' => 'R' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'Y' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:25:34 [INFO] [stderr] | [INFO] [stderr] 25 | 'R' => 'Y' as u8, 'Y' => 'R' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'R' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:26:16 [INFO] [stderr] | [INFO] [stderr] 26 | 'K' => 'M' as u8, 'M' => 'K' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'M' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:26:34 [INFO] [stderr] | [INFO] [stderr] 26 | 'K' => 'M' as u8, 'M' => 'K' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'K' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:27:16 [INFO] [stderr] | [INFO] [stderr] 27 | 'B' => 'V' as u8, 'V' => 'B' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'V' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:27:34 [INFO] [stderr] | [INFO] [stderr] 27 | 'B' => 'V' as u8, 'V' => 'B' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'B' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:28:16 [INFO] [stderr] | [INFO] [stderr] 28 | 'D' => 'H' as u8, 'H' => 'D' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'H' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:28:34 [INFO] [stderr] | [INFO] [stderr] 28 | 'D' => 'H' as u8, 'H' => 'D' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'D' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:29:16 [INFO] [stderr] | [INFO] [stderr] 29 | 'S' => 'S' as u8, 'W' => 'W' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'S' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:29:34 [INFO] [stderr] | [INFO] [stderr] 29 | 'S' => 'S' as u8, 'W' => 'W' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'W' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/kmer.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | / pub fn normalize<'a>(seq: &'a [u8], iupac: bool) -> Vec { [INFO] [stderr] 46 | | //! Transform a FASTX sequence into it's "normalized" form. [INFO] [stderr] 47 | | //! [INFO] [stderr] 48 | | //! The normalized form is: [INFO] [stderr] ... | [INFO] [stderr] 88 | | buf [INFO] [stderr] 89 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:63:25 [INFO] [stderr] | [INFO] [stderr] 63 | ('a', _) => 'A' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:64:25 [INFO] [stderr] | [INFO] [stderr] 64 | ('c', _) => 'C' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'C' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:65:25 [INFO] [stderr] | [INFO] [stderr] 65 | ('g', _) => 'G' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'G' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:67:47 [INFO] [stderr] | [INFO] [stderr] 67 | ('t', _) | ('u', _) | ('U', _) => 'T' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'T' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:68:47 [INFO] [stderr] | [INFO] [stderr] 68 | ('-', _) | ('~', _) | (' ', _) => '.' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'.' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:75:28 [INFO] [stderr] | [INFO] [stderr] 75 | ('b', true) => 'B' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'B' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:76:28 [INFO] [stderr] | [INFO] [stderr] 76 | ('d', true) => 'D' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'D' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:77:28 [INFO] [stderr] | [INFO] [stderr] 77 | ('h', true) => 'H' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'H' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:78:28 [INFO] [stderr] | [INFO] [stderr] 78 | ('v', true) => 'V' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'V' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:79:28 [INFO] [stderr] | [INFO] [stderr] 79 | ('r', true) => 'R' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'R' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:80:28 [INFO] [stderr] | [INFO] [stderr] 80 | ('y', true) => 'Y' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'Y' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:81:28 [INFO] [stderr] | [INFO] [stderr] 81 | ('s', true) => 'S' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'S' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:82:28 [INFO] [stderr] | [INFO] [stderr] 82 | ('w', true) => 'W' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'W' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:83:28 [INFO] [stderr] | [INFO] [stderr] 83 | ('k', true) => 'K' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'K' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:84:28 [INFO] [stderr] | [INFO] [stderr] 84 | ('m', true) => 'M' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'M' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/kmer.rs:85:18 [INFO] [stderr] | [INFO] [stderr] 85 | _ => 'N' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'N' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/kmer.rs:104:1 [INFO] [stderr] | [INFO] [stderr] 104 | / pub fn canonical<'a>(seq: &'a [u8]) -> Cow<'a, [u8]> { [INFO] [stderr] 105 | | //! Taking in a sequence string, return the canonical form of the sequence [INFO] [stderr] 106 | | //! (e.g. the lexigraphically lowest of either the original sequence or its [INFO] [stderr] 107 | | //! reverse complement) [INFO] [stderr] ... | [INFO] [stderr] 130 | | } [INFO] [stderr] 131 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/kmer.rs:116:23 [INFO] [stderr] | [INFO] [stderr] 116 | if !enough && n < &rn { [INFO] [stderr] | ^^^^--- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `rn` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of left operand [INFO] [stderr] --> src/kmer.rs:119:30 [INFO] [stderr] | [INFO] [stderr] 119 | } else if !enough && &rn < n { [INFO] [stderr] | ---^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: use the left value directly: `rn` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/kmer.rs:145:1 [INFO] [stderr] | [INFO] [stderr] 145 | / pub fn minimizer<'a>(seq: &'a [u8], length: usize) -> Cow<'a, [u8]> { [INFO] [stderr] 146 | | let reverse_complement: Vec = seq.iter().rev().map(|n| complement(n)).collect(); [INFO] [stderr] 147 | | let mut minmer = Cow::Borrowed(&seq[..length]); [INFO] [stderr] 148 | | [INFO] [stderr] ... | [INFO] [stderr] 157 | | minmer [INFO] [stderr] 158 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/kmer.rs:150:12 [INFO] [stderr] | [INFO] [stderr] 150 | if kmer < &minmer[..] { [INFO] [stderr] | ^^^^^^^----------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `minmer[..]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/kmer.rs:153:12 [INFO] [stderr] | [INFO] [stderr] 153 | if rc_kmer < &minmer[..] { [INFO] [stderr] | ^^^^^^^^^^----------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `minmer[..]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/kmer.rs:178:1 [INFO] [stderr] | [INFO] [stderr] 178 | / pub fn has_no_n<'a>(seq: &'a [u8]) -> bool { [INFO] [stderr] 179 | | //! Determines if a sequence has any non-primary four bases [INFO] [stderr] 180 | | //! characters in it [INFO] [stderr] 181 | | seq.iter().all(|n| is_good_base(*n)) [INFO] [stderr] 182 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/bitkmer.rs:6:46 [INFO] [stderr] | [INFO] [stderr] 6 | fn extend_kmer(kmer: &mut BitKmer, new_char: &u8) -> bool { [INFO] [stderr] | ^^^ help: consider passing by value instead: `u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bitkmer.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | / match new_char { [INFO] [stderr] 9 | | &b'A' | &b'a' => new_char_int = 0 as BitKmerSeq, [INFO] [stderr] 10 | | &b'C' | &b'c' => new_char_int = 1 as BitKmerSeq, [INFO] [stderr] 11 | | &b'G' | &b'g' => new_char_int = 2 as BitKmerSeq, [INFO] [stderr] 12 | | &b'T' | &b't' => new_char_int = 3 as BitKmerSeq, [INFO] [stderr] 13 | | _ => return false, [INFO] [stderr] 14 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 8 | match *new_char { [INFO] [stderr] 9 | b'A' | b'a' => new_char_int = 0 as BitKmerSeq, [INFO] [stderr] 10 | b'C' | b'c' => new_char_int = 1 as BitKmerSeq, [INFO] [stderr] 11 | b'G' | b'g' => new_char_int = 2 as BitKmerSeq, [INFO] [stderr] 12 | b'T' | b't' => new_char_int = 3 as BitKmerSeq, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/bitkmer.rs:18:45 [INFO] [stderr] | [INFO] [stderr] 18 | kmer.0 = new_kmer & (BitKmerSeq::pow(2, (2 * kmer.1) as u32) - 1) as BitKmerSeq; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(2 * kmer.1)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/bitkmer.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / let mut stop_len = kmer.1 as usize; [INFO] [stderr] 30 | | if initial { [INFO] [stderr] 31 | | kmer_len = 0; [INFO] [stderr] 32 | | stop_len = (kmer.1 - 1) as usize; [INFO] [stderr] 33 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let stop_len = if initial { ..; (kmer.1 - 1) as usize } else { kmer.1 as usize };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/bitkmer.rs:140:15 [INFO] [stderr] | [INFO] [stderr] 140 | let seq = "ACGTA".as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"ACGTA"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/bitkmer.rs:147:15 [INFO] [stderr] | [INFO] [stderr] 147 | let seq = "TA".as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"TA"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/bitkmer.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | new_kmer = new_kmer >> (2 * (32 - kmer.1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `new_kmer >>= (2 * (32 - kmer.1))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/bitkmer.rs:194:39 [INFO] [stderr] | [INFO] [stderr] 194 | let bitmask = (BitKmerSeq::pow(2, (2 * minmer_size) as u32) - 1) as BitKmerSeq; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(2 * minmer_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/bitkmer.rs:195:14 [INFO] [stderr] | [INFO] [stderr] 195 | for _ in 0..(kmer.1 - minmer_size + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=kmer.1 - minmer_size` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/bitkmer.rs:224:38 [INFO] [stderr] | [INFO] [stderr] 224 | let bitmask = BitKmerSeq::pow(2, (2 * kmer.1 - 1) as u32) + BitKmerSeq::pow(2, (2 * kmer.1 - 2) as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(2 * kmer.1 - 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/bitkmer.rs:224:84 [INFO] [stderr] | [INFO] [stderr] 224 | let bitmask = BitKmerSeq::pow(2, (2 * kmer.1 - 1) as u32) + BitKmerSeq::pow(2, (2 * kmer.1 - 2) as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(2 * kmer.1 - 2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/bitkmer.rs:259:46 [INFO] [stderr] | [INFO] [stderr] 259 | let mut ikmer: BitKmer = bytes_to_bitmer("C".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"C"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/bitkmer.rs:262:29 [INFO] [stderr] | [INFO] [stderr] 262 | ikmer = bytes_to_bitmer("TTA".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"TTA"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/bitkmer.rs:265:29 [INFO] [stderr] | [INFO] [stderr] 265 | ikmer = bytes_to_bitmer("AAA".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"AAA"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/seq.rs:29:31 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn quality_mask(self, ref score: u8) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/seq.rs:43:21 [INFO] [stderr] | [INFO] [stderr] 43 | base.clone() [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*base` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/seq.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | / pub fn bit_kmers<'b>(&'b self, k: u8, canonical: bool) -> BitNuclKmer<'b> { [INFO] [stderr] 79 | | BitNuclKmer::new(&self.seq, k, canonical) [INFO] [stderr] 80 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/seq.rs:110:5 [INFO] [stderr] | [INFO] [stderr] 110 | / let mut stop_len = k as usize; [INFO] [stderr] 111 | | if initial { [INFO] [stderr] 112 | | kmer_len = 0; [INFO] [stderr] 113 | | stop_len = (k - 1) as usize; [INFO] [stderr] 114 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let stop_len = if initial { ..; (k - 1) as usize } else { k as usize };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/seq.rs:177:45 [INFO] [stderr] | [INFO] [stderr] 177 | let filtered_rec = seq_rec.quality_mask('5' as u8); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'5' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in SeqRecord::from_bytes(b"AGCT").kmers(1, true).enumerate()` or similar iterators [INFO] [stderr] --> src/seq.rs:230:25 [INFO] [stderr] | [INFO] [stderr] 230 | for (_, k, is_c) in SeqRecord::from_bytes(b"AGCT").kmers(1, true) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in SeqRecord::from_bytes(b"AGCTA").kmers(2, true).enumerate()` or similar iterators [INFO] [stderr] --> src/seq.rs:254:22 [INFO] [stderr] | [INFO] [stderr] 254 | for (_, k, _) in SeqRecord::from_bytes(b"AGCTA").kmers(2, true) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in SeqRecord::from_bytes(b"AGNTA").kmers(2, true).enumerate()` or similar iterators [INFO] [stderr] --> src/seq.rs:266:23 [INFO] [stderr] | [INFO] [stderr] 266 | for (ix, k, _) in SeqRecord::from_bytes(b"AGNTA").kmers(2, true) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/buffer.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | / pub fn get_buffer<'b, T>(&'b self) -> RecBuffer<'b, T> { [INFO] [stderr] 67 | | RecBuffer { [INFO] [stderr] 68 | | buf: &self.buf, [INFO] [stderr] 69 | | pos: 0, [INFO] [stderr] ... | [INFO] [stderr] 72 | | } [INFO] [stderr] 73 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/util.rs:63:1 [INFO] [stderr] | [INFO] [stderr] 63 | / pub fn strip_whitespace<'a>(seq: &'a [u8]) -> Cow<'a, [u8]> { [INFO] [stderr] 64 | | let mut new_buf = Vec::with_capacity(seq.len()); [INFO] [stderr] 65 | | let mut i = 0; [INFO] [stderr] 66 | | while i < seq.len() { [INFO] [stderr] ... | [INFO] [stderr] 78 | | Cow::Owned(new_buf) [INFO] [stderr] 79 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `needletail`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "e70bc6cf04de16de856a98c23da3c527c3df72e24740f3633353eb3e4d0a88f8"` [INFO] running `"docker" "rm" "-f" "e70bc6cf04de16de856a98c23da3c527c3df72e24740f3633353eb3e4d0a88f8"` [INFO] [stdout] e70bc6cf04de16de856a98c23da3c527c3df72e24740f3633353eb3e4d0a88f8