[INFO] crate color-convert 0.1.0 is already in cache [INFO] extracting crate color-convert 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/color-convert/0.1.0 [INFO] extracting crate color-convert 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/color-convert/0.1.0 [INFO] validating manifest of color-convert-0.1.0 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 color-convert-0.1.0 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 color-convert-0.1.0 [INFO] finished frobbing color-convert-0.1.0 [INFO] frobbed toml for color-convert-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/color-convert/0.1.0/Cargo.toml [INFO] started frobbing color-convert-0.1.0 [INFO] finished frobbing color-convert-0.1.0 [INFO] frobbed toml for color-convert-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/color-convert/0.1.0/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 color-convert-0.1.0 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/color-convert/0.1.0:/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] b850ec546b9ee321183165e8855cf6d5dbf4e1dacffa810d74dd8e9d2b1d91ec [INFO] running `"docker" "start" "-a" "b850ec546b9ee321183165e8855cf6d5dbf4e1dacffa810d74dd8e9d2b1d91ec"` [INFO] [stderr] Checking color-convert v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/handles/rgb.rs:150:6 [INFO] [stderr] | [INFO] [stderr] 150 | let c = ((1f32 - r - k) / (1f32 - k) * 100f32).round() / 100f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/handles/rgb.rs:151:6 [INFO] [stderr] | [INFO] [stderr] 151 | let m = ((1f32 - g - k) / (1f32 - k) * 100f32).round() / 100f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/handles/rgb.rs:152:6 [INFO] [stderr] | [INFO] [stderr] 152 | let y = ((1f32 - b - k) / (1f32 - k) * 100f32).round() / 100f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/handles/rgb.rs:179:6 [INFO] [stderr] | [INFO] [stderr] 179 | let s; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/handles/rgb.rs:180:6 [INFO] [stderr] | [INFO] [stderr] 180 | let v; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/handles/hsl.rs:42:7 [INFO] [stderr] | [INFO] [stderr] 42 | let g; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/handles/hsl.rs:43:7 [INFO] [stderr] | [INFO] [stderr] 43 | let b; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/handles/hsl.rs:60:8 [INFO] [stderr] | [INFO] [stderr] 60 | let q; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 8th binding whose name is just one char [INFO] [stderr] --> src/handles/hsl.rs:61:8 [INFO] [stderr] | [INFO] [stderr] 61 | let p; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/handles/cmyk.rs:15:7 [INFO] [stderr] | [INFO] [stderr] 15 | let r = utils::round(255f32 * (1f32 - c) * (1f32 - k), 0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/handles/cmyk.rs:16:7 [INFO] [stderr] | [INFO] [stderr] 16 | let g = utils::round(255f32 * (1f32 - m) * (1f32 - k), 0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/handles/cmyk.rs:17:7 [INFO] [stderr] | [INFO] [stderr] 17 | let b = utils::round(255f32 * (1f32 - y) * (1f32 - k), 0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/handles/hsv.rs:25:7 [INFO] [stderr] | [INFO] [stderr] 25 | let x = c * (1f32 - ((h / 60f32) % 2f32 - 1f32).abs()); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/handles/hsv.rs:26:7 [INFO] [stderr] | [INFO] [stderr] 26 | let m = v - c; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/handles/hsv.rs:28:11 [INFO] [stderr] | [INFO] [stderr] 28 | let mut r = 0f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 8th binding whose name is just one char [INFO] [stderr] --> src/handles/hsv.rs:29:11 [INFO] [stderr] | [INFO] [stderr] 29 | let mut g = 0f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 9th binding whose name is just one char [INFO] [stderr] --> src/handles/hsv.rs:30:11 [INFO] [stderr] | [INFO] [stderr] 30 | let mut b = 0f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/handles/rgb.rs:150:6 [INFO] [stderr] | [INFO] [stderr] 150 | let c = ((1f32 - r - k) / (1f32 - k) * 100f32).round() / 100f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/handles/rgb.rs:151:6 [INFO] [stderr] | [INFO] [stderr] 151 | let m = ((1f32 - g - k) / (1f32 - k) * 100f32).round() / 100f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/handles/rgb.rs:152:6 [INFO] [stderr] | [INFO] [stderr] 152 | let y = ((1f32 - b - k) / (1f32 - k) * 100f32).round() / 100f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/handles/rgb.rs:179:6 [INFO] [stderr] | [INFO] [stderr] 179 | let s; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/handles/rgb.rs:180:6 [INFO] [stderr] | [INFO] [stderr] 180 | let v; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/handles/hsl.rs:42:7 [INFO] [stderr] | [INFO] [stderr] 42 | let g; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/handles/hsl.rs:43:7 [INFO] [stderr] | [INFO] [stderr] 43 | let b; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/handles/hsl.rs:60:8 [INFO] [stderr] | [INFO] [stderr] 60 | let q; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 8th binding whose name is just one char [INFO] [stderr] --> src/handles/hsl.rs:61:8 [INFO] [stderr] | [INFO] [stderr] 61 | let p; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/handles/cmyk.rs:15:7 [INFO] [stderr] | [INFO] [stderr] 15 | let r = utils::round(255f32 * (1f32 - c) * (1f32 - k), 0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/handles/cmyk.rs:16:7 [INFO] [stderr] | [INFO] [stderr] 16 | let g = utils::round(255f32 * (1f32 - m) * (1f32 - k), 0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/handles/cmyk.rs:17:7 [INFO] [stderr] | [INFO] [stderr] 17 | let b = utils::round(255f32 * (1f32 - y) * (1f32 - k), 0); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/handles/hsv.rs:25:7 [INFO] [stderr] | [INFO] [stderr] 25 | let x = c * (1f32 - ((h / 60f32) % 2f32 - 1f32).abs()); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/handles/hsv.rs:26:7 [INFO] [stderr] | [INFO] [stderr] 26 | let m = v - c; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/handles/hsv.rs:28:11 [INFO] [stderr] | [INFO] [stderr] 28 | let mut r = 0f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 8th binding whose name is just one char [INFO] [stderr] --> src/handles/hsv.rs:29:11 [INFO] [stderr] | [INFO] [stderr] 29 | let mut g = 0f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 9th binding whose name is just one char [INFO] [stderr] --> src/handles/hsv.rs:30:11 [INFO] [stderr] | [INFO] [stderr] 30 | let mut b = 0f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handles/map.rs:149:2 [INFO] [stderr] | [INFO] [stderr] 149 | to_color [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handles/map.rs:3:17 [INFO] [stderr] | [INFO] [stderr] 3 | let to_color = match color_name { [INFO] [stderr] | ____________________^ [INFO] [stderr] 4 | | "AliceBlue" => "#F0F8FF", [INFO] [stderr] 5 | | "AntiqueWhite" => "#FAEBD7", [INFO] [stderr] 6 | | "Aqua" => "#00FFFF", [INFO] [stderr] ... | [INFO] [stderr] 147 | | _ => panic!("[color-convert] map_color_name not match color_name value.") [INFO] [stderr] 148 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handles/map.rs:300:2 [INFO] [stderr] | [INFO] [stderr] 300 | to_color_name [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handles/map.rs:154:22 [INFO] [stderr] | [INFO] [stderr] 154 | let to_color_name = match color_name { [INFO] [stderr] | _________________________^ [INFO] [stderr] 155 | | "blue" => "Blue", [INFO] [stderr] 156 | | "pink" => "Pink", [INFO] [stderr] 157 | | "powderblue" => "PowderBlue", [INFO] [stderr] ... | [INFO] [stderr] 298 | | _ => panic!("[color-convert] map_name_to_name not match color_name value.") [INFO] [stderr] 299 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handles/map.rs:324:2 [INFO] [stderr] | [INFO] [stderr] 324 | match_number [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handles/map.rs:305:21 [INFO] [stderr] | [INFO] [stderr] 305 | let match_number = match upper_char.as_str() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 306 | | "A" => 10, [INFO] [stderr] 307 | | "B" => 11, [INFO] [stderr] 308 | | "C" => 12, [INFO] [stderr] ... | [INFO] [stderr] 322 | | _ => panic!("[color-convert] map_hex not match match_char value.") [INFO] [stderr] 323 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/handles/hex.rs:77:10 [INFO] [stderr] | [INFO] [stderr] 77 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 78 | | if color.android { [INFO] [stderr] 79 | | //hex_string.insert_str(0, &hex_string.pop().unwrap().to_string()); [INFO] [stderr] 80 | | hex_string = format!("{}{}", &hex_string[6..8], &hex_string[0..6]); [INFO] [stderr] 81 | | } [INFO] [stderr] 82 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 77 | } else if color.android { [INFO] [stderr] 78 | //hex_string.insert_str(0, &hex_string.pop().unwrap().to_string()); [INFO] [stderr] 79 | hex_string = format!("{}{}", &hex_string[6..8], &hex_string[0..6]); [INFO] [stderr] 80 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/handles/rgb.rs:232:9 [INFO] [stderr] | [INFO] [stderr] 232 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 233 | | if color.alpha { [INFO] [stderr] 234 | | rgb = format!("rgba({},{},{},{})", r, g, b, if alpha > 1f32 {1f32} else {alpha}); [INFO] [stderr] 235 | | } else { [INFO] [stderr] 236 | | rgb = format!("rgb({},{},{})", r, g, b); [INFO] [stderr] 237 | | } [INFO] [stderr] 238 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 232 | } else if color.alpha { [INFO] [stderr] 233 | rgb = format!("rgba({},{},{},{})", r, g, b, if alpha > 1f32 {1f32} else {alpha}); [INFO] [stderr] 234 | } else { [INFO] [stderr] 235 | rgb = format!("rgb({},{},{})", r, g, b); [INFO] [stderr] 236 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/handles/hsl.rs:16:10 [INFO] [stderr] | [INFO] [stderr] 16 | if ti < 0.166666666 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0.166_666_666` [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/handles/hsl.rs:22:10 [INFO] [stderr] | [INFO] [stderr] 22 | if ti < 0.666666666 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0.666_666_666` [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/handles/hsl.rs:23:28 [INFO] [stderr] | [INFO] [stderr] 23 | return pi + (qi - pi) * (0.666666666 - ti) * 6f32; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0.666_666_666` [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/handles/hsl.rs:68:42 [INFO] [stderr] | [INFO] [stderr] 68 | r = utils::round(handle_hsl(p, q, h + 0.33333333) * 255f32, 2); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0.333_333_33` [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/handles/hsl.rs:70:42 [INFO] [stderr] | [INFO] [stderr] 70 | b = utils::round(handle_hsl(p, q, h - 0.33333333) * 255f32, 2); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0.333_333_33` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handles/hsv.rs:9:2 [INFO] [stderr] | [INFO] [stderr] 9 | cap [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handles/hsv.rs:7:12 [INFO] [stderr] | [INFO] [stderr] 7 | let cap = re.captures(&hsv); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handles/map.rs:149:2 [INFO] [stderr] | [INFO] [stderr] 149 | to_color [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handles/map.rs:3:17 [INFO] [stderr] | [INFO] [stderr] 3 | let to_color = match color_name { [INFO] [stderr] | ____________________^ [INFO] [stderr] 4 | | "AliceBlue" => "#F0F8FF", [INFO] [stderr] 5 | | "AntiqueWhite" => "#FAEBD7", [INFO] [stderr] 6 | | "Aqua" => "#00FFFF", [INFO] [stderr] ... | [INFO] [stderr] 147 | | _ => panic!("[color-convert] map_color_name not match color_name value.") [INFO] [stderr] 148 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handles/map.rs:300:2 [INFO] [stderr] | [INFO] [stderr] 300 | to_color_name [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handles/map.rs:154:22 [INFO] [stderr] | [INFO] [stderr] 154 | let to_color_name = match color_name { [INFO] [stderr] | _________________________^ [INFO] [stderr] 155 | | "blue" => "Blue", [INFO] [stderr] 156 | | "pink" => "Pink", [INFO] [stderr] 157 | | "powderblue" => "PowderBlue", [INFO] [stderr] ... | [INFO] [stderr] 298 | | _ => panic!("[color-convert] map_name_to_name not match color_name value.") [INFO] [stderr] 299 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handles/map.rs:324:2 [INFO] [stderr] | [INFO] [stderr] 324 | match_number [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handles/map.rs:305:21 [INFO] [stderr] | [INFO] [stderr] 305 | let match_number = match upper_char.as_str() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 306 | | "A" => 10, [INFO] [stderr] 307 | | "B" => 11, [INFO] [stderr] 308 | | "C" => 12, [INFO] [stderr] ... | [INFO] [stderr] 322 | | _ => panic!("[color-convert] map_hex not match match_char value.") [INFO] [stderr] 323 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/handles/hex.rs:77:10 [INFO] [stderr] | [INFO] [stderr] 77 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 78 | | if color.android { [INFO] [stderr] 79 | | //hex_string.insert_str(0, &hex_string.pop().unwrap().to_string()); [INFO] [stderr] 80 | | hex_string = format!("{}{}", &hex_string[6..8], &hex_string[0..6]); [INFO] [stderr] 81 | | } [INFO] [stderr] 82 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 77 | } else if color.android { [INFO] [stderr] 78 | //hex_string.insert_str(0, &hex_string.pop().unwrap().to_string()); [INFO] [stderr] 79 | hex_string = format!("{}{}", &hex_string[6..8], &hex_string[0..6]); [INFO] [stderr] 80 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/handles/rgb.rs:232:9 [INFO] [stderr] | [INFO] [stderr] 232 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 233 | | if color.alpha { [INFO] [stderr] 234 | | rgb = format!("rgba({},{},{},{})", r, g, b, if alpha > 1f32 {1f32} else {alpha}); [INFO] [stderr] 235 | | } else { [INFO] [stderr] 236 | | rgb = format!("rgb({},{},{})", r, g, b); [INFO] [stderr] 237 | | } [INFO] [stderr] 238 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 232 | } else if color.alpha { [INFO] [stderr] 233 | rgb = format!("rgba({},{},{},{})", r, g, b, if alpha > 1f32 {1f32} else {alpha}); [INFO] [stderr] 234 | } else { [INFO] [stderr] 235 | rgb = format!("rgb({},{},{})", r, g, b); [INFO] [stderr] 236 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/handles/hsl.rs:16:10 [INFO] [stderr] | [INFO] [stderr] 16 | if ti < 0.166666666 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0.166_666_666` [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/handles/hsl.rs:22:10 [INFO] [stderr] | [INFO] [stderr] 22 | if ti < 0.666666666 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0.666_666_666` [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/handles/hsl.rs:23:28 [INFO] [stderr] | [INFO] [stderr] 23 | return pi + (qi - pi) * (0.666666666 - ti) * 6f32; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0.666_666_666` [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/handles/hsl.rs:68:42 [INFO] [stderr] | [INFO] [stderr] 68 | r = utils::round(handle_hsl(p, q, h + 0.33333333) * 255f32, 2); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0.333_333_33` [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/handles/hsl.rs:70:42 [INFO] [stderr] | [INFO] [stderr] 70 | b = utils::round(handle_hsl(p, q, h - 0.33333333) * 255f32, 2); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0.333_333_33` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handles/hsv.rs:9:2 [INFO] [stderr] | [INFO] [stderr] 9 | cap [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handles/hsv.rs:7:12 [INFO] [stderr] | [INFO] [stderr] 7 | let cap = re.captures(&hsv); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/color.rs:43:18 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn to_upper(&mut self, to_upper: bool) -> &Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/color.rs:47:20 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn to_android(&mut self, to_android: bool) -> &Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/color.rs:51:18 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn to_alpha(&mut self, to_alpha: bool) -> &Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: the loop variable `n` is only used to index `value`. [INFO] [stderr] --> src/handles/rgb.rs:43:11 [INFO] [stderr] | [INFO] [stderr] 43 | for n in 0..3usize { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 43 | for in value.iter().take(3usize) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/handles/rgb.rs:56:3 [INFO] [stderr] | [INFO] [stderr] 56 | let mut alpha = 1f32; [INFO] [stderr] | _________^ [INFO] [stderr] 57 | | if cap.len() == 4 { [INFO] [stderr] 58 | | alpha = cap[3]; [INFO] [stderr] 59 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let alpha = if cap.len() == 4 { cap[3] } else { 1f32 };` [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | if max == min { [INFO] [stderr] | ^^^^^^^^^^ help: consider comparing them within some error: `(max - min).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | if max == min { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:101:6 [INFO] [stderr] | [INFO] [stderr] 101 | if max == cap[0] && cap[1] >= cap[2] { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(max - cap[0]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:101:6 [INFO] [stderr] | [INFO] [stderr] 101 | if max == cap[0] && cap[1] >= cap[2] { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | } else if max == cap[0] && cap[1] < cap[1] { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(max - cap[0]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | } else if max == cap[0] && cap[1] < cap[1] { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `<` [INFO] [stderr] --> src/handles/rgb.rs:103:30 [INFO] [stderr] | [INFO] [stderr] 103 | } else if max == cap[0] && cap[1] < cap[1] { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | } else if max == cap[1] || max == cap[2] { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(max - cap[1]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | } else if max == cap[1] || max == cap[2] { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:105:30 [INFO] [stderr] | [INFO] [stderr] 105 | } else if max == cap[1] || max == cap[2] { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(max - cap[2]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:105:30 [INFO] [stderr] | [INFO] [stderr] 105 | } else if max == cap[1] || max == cap[2] { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | if k == 1f32 { [INFO] [stderr] | ^^^^^^^^^ help: consider comparing them within some error: `(k - 1f32).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | if k == 1f32 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is only used to index `cmyk`. [INFO] [stderr] --> src/handles/rgb.rs:155:15 [INFO] [stderr] | [INFO] [stderr] 155 | for index in 0..4 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 155 | for in cmyk.iter_mut().take(4) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:188:12 [INFO] [stderr] | [INFO] [stderr] 188 | } else if max == r { [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(max - r).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:188:12 [INFO] [stderr] | [INFO] [stderr] 188 | } else if max == r { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:190:12 [INFO] [stderr] | [INFO] [stderr] 190 | } else if max == g { [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(max - g).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:190:12 [INFO] [stderr] | [INFO] [stderr] 190 | } else if max == g { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:192:12 [INFO] [stderr] | [INFO] [stderr] 192 | } else if max == b { [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(max - b).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:192:12 [INFO] [stderr] | [INFO] [stderr] 192 | } else if max == b { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/handles/rgb.rs:215:2 [INFO] [stderr] | [INFO] [stderr] 215 | let mut alpha = 1f32; [INFO] [stderr] | _____^ [INFO] [stderr] 216 | | [INFO] [stderr] 217 | | if cap.len() == 4 { [INFO] [stderr] 218 | | alpha = cap[3]; [INFO] [stderr] 219 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let alpha = if cap.len() == 4 { cap[3] } else { 1f32 };` [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: float has excessive precision [INFO] [stderr] --> src/handles/hsl.rs:16:10 [INFO] [stderr] | [INFO] [stderr] 16 | if ti < 0.166666666 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.166_666_67` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::excessive_precision)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/handles/hsl.rs:22:10 [INFO] [stderr] | [INFO] [stderr] 22 | if ti < 0.666666666 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.666_666_7` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/handles/hsl.rs:23:28 [INFO] [stderr] | [INFO] [stderr] 23 | return pi + (qi - pi) * (0.666666666 - ti) * 6f32; [INFO] [stderr] | ^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.666_666_7` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/handles/hsl.rs:73:3 [INFO] [stderr] | [INFO] [stderr] 73 | let rgb; [INFO] [stderr] | _________^ [INFO] [stderr] 74 | | if color.alpha { [INFO] [stderr] 75 | | rgb = format!("rgba({},{},{},{})", r, g, b, alpha); [INFO] [stderr] 76 | | } else { [INFO] [stderr] 77 | | rgb = format!("rgb({},{},{})", r, g, b); [INFO] [stderr] 78 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let rgb = if color.alpha { $ crate :: fmt :: format ( format_args ! ( $ ( $ arg ) * ) ) } else { $ crate :: fmt :: format ( format_args ! ( $ ( $ arg ) * ) ) };` [INFO] [stderr] | [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/handles/hsl.rs:53:3 [INFO] [stderr] | [INFO] [stderr] 53 | h = h / 360f32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `h /= 360f32` [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: float has excessive precision [INFO] [stderr] --> src/handles/hsl.rs:68:42 [INFO] [stderr] | [INFO] [stderr] 68 | r = utils::round(handle_hsl(p, q, h + 0.33333333) * 255f32, 2); [INFO] [stderr] | ^^^^^^^^^^ help: consider changing the type or truncating it to: `0.333_333_34` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/handles/hsl.rs:70:42 [INFO] [stderr] | [INFO] [stderr] 70 | b = utils::round(handle_hsl(p, q, h - 0.33333333) * 255f32, 2); [INFO] [stderr] | ^^^^^^^^^^ help: consider changing the type or truncating it to: `0.333_333_34` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/handles/hsl.rs:104:3 [INFO] [stderr] | [INFO] [stderr] 104 | let hsl; [INFO] [stderr] | _________^ [INFO] [stderr] 105 | | if color.alpha { [INFO] [stderr] 106 | | hsl = format!("hsla({},{},{},{})", &value["h"], &value["s"], &value["l"], alpha); [INFO] [stderr] 107 | | } else { [INFO] [stderr] 108 | | hsl = format!("hsl({},{},{})", &value["h"], &value["s"], &value["l"]); [INFO] [stderr] 109 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let hsl = if color.alpha { $ crate :: fmt :: format ( format_args ! ( $ ( $ arg ) * ) ) } else { $ crate :: fmt :: format ( format_args ! ( $ ( $ arg ) * ) ) };` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/handles/hsv.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | if let Some(_) = cap { [INFO] [stderr] | _____- ^^^^^^^ [INFO] [stderr] 100 | | let hsv = hsv.to_owned(); [INFO] [stderr] 101 | | return Ok(if color.upper {hsv.to_uppercase()} else {hsv}); [INFO] [stderr] 102 | | } [INFO] [stderr] | |_____- help: try this: `if cap.is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: This binary expression can be simplified [INFO] [stderr] --> src/utils.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | if alpha == 1f32 || alpha > 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `alpha >= 1f32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_comparisons)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/utils.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | if alpha == 1f32 || alpha > 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(alpha - 1f32).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/utils.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | if alpha == 1f32 || alpha > 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/utils.rs:58:2 [INFO] [stderr] | [INFO] [stderr] 58 | let result; [INFO] [stderr] | _____^ [INFO] [stderr] 59 | | if value.contains("%") { [INFO] [stderr] 60 | | let n = value.replace("%", ""); [INFO] [stderr] 61 | | result = match n.parse::() { [INFO] [stderr] ... | [INFO] [stderr] 69 | | }; [INFO] [stderr] 70 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 58 | let result = if value.contains("%") { ..; match n.parse::() { [INFO] [stderr] 59 | Ok(value) => value / 100f32, [INFO] [stderr] 60 | Err(_error) => 0f32, [INFO] [stderr] 61 | } } else { match value.parse::() { [INFO] [stderr] 62 | Ok(value) => value / 255f32, [INFO] [stderr] 63 | Err(_error) => 0f32, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/utils.rs:59:20 [INFO] [stderr] | [INFO] [stderr] 59 | if value.contains("%") { [INFO] [stderr] | ^^^ help: try using a char instead: `'%'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/utils.rs:78:2 [INFO] [stderr] | [INFO] [stderr] 78 | let result; [INFO] [stderr] | _____^ [INFO] [stderr] 79 | | if value.contains("%") { [INFO] [stderr] 80 | | let n = value.replace("%", ""); [INFO] [stderr] 81 | | result = match n.parse::() { [INFO] [stderr] ... | [INFO] [stderr] 89 | | }; [INFO] [stderr] 90 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 78 | let result = if value.contains("%") { ..; match n.parse::() { [INFO] [stderr] 79 | Ok(value) => value / 100f32, [INFO] [stderr] 80 | Err(_error) => 0f32, [INFO] [stderr] 81 | } } else { match value.parse::() { [INFO] [stderr] 82 | Ok(value) => value, [INFO] [stderr] 83 | Err(_error) => 0f32, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/utils.rs:79:20 [INFO] [stderr] | [INFO] [stderr] 79 | if value.contains("%") { [INFO] [stderr] | ^^^ help: try using a char instead: `'%'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] error: aborting due to 11 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `color-convert`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/color.rs:43:18 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn to_upper(&mut self, to_upper: bool) -> &Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/color.rs:47:20 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn to_android(&mut self, to_android: bool) -> &Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/color.rs:51:18 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn to_alpha(&mut self, to_alpha: bool) -> &Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: the loop variable `n` is only used to index `value`. [INFO] [stderr] --> src/handles/rgb.rs:43:11 [INFO] [stderr] | [INFO] [stderr] 43 | for n in 0..3usize { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 43 | for in value.iter().take(3usize) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/handles/rgb.rs:56:3 [INFO] [stderr] | [INFO] [stderr] 56 | let mut alpha = 1f32; [INFO] [stderr] | _________^ [INFO] [stderr] 57 | | if cap.len() == 4 { [INFO] [stderr] 58 | | alpha = cap[3]; [INFO] [stderr] 59 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let alpha = if cap.len() == 4 { cap[3] } else { 1f32 };` [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | if max == min { [INFO] [stderr] | ^^^^^^^^^^ help: consider comparing them within some error: `(max - min).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | if max == min { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:101:6 [INFO] [stderr] | [INFO] [stderr] 101 | if max == cap[0] && cap[1] >= cap[2] { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(max - cap[0]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:101:6 [INFO] [stderr] | [INFO] [stderr] 101 | if max == cap[0] && cap[1] >= cap[2] { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | } else if max == cap[0] && cap[1] < cap[1] { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(max - cap[0]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | } else if max == cap[0] && cap[1] < cap[1] { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `<` [INFO] [stderr] --> src/handles/rgb.rs:103:30 [INFO] [stderr] | [INFO] [stderr] 103 | } else if max == cap[0] && cap[1] < cap[1] { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | } else if max == cap[1] || max == cap[2] { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(max - cap[1]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | } else if max == cap[1] || max == cap[2] { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:105:30 [INFO] [stderr] | [INFO] [stderr] 105 | } else if max == cap[1] || max == cap[2] { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(max - cap[2]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:105:30 [INFO] [stderr] | [INFO] [stderr] 105 | } else if max == cap[1] || max == cap[2] { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | if k == 1f32 { [INFO] [stderr] | ^^^^^^^^^ help: consider comparing them within some error: `(k - 1f32).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | if k == 1f32 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is only used to index `cmyk`. [INFO] [stderr] --> src/handles/rgb.rs:155:15 [INFO] [stderr] | [INFO] [stderr] 155 | for index in 0..4 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 155 | for in cmyk.iter_mut().take(4) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:188:12 [INFO] [stderr] | [INFO] [stderr] 188 | } else if max == r { [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(max - r).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:188:12 [INFO] [stderr] | [INFO] [stderr] 188 | } else if max == r { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:190:12 [INFO] [stderr] | [INFO] [stderr] 190 | } else if max == g { [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(max - g).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:190:12 [INFO] [stderr] | [INFO] [stderr] 190 | } else if max == g { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/handles/rgb.rs:192:12 [INFO] [stderr] | [INFO] [stderr] 192 | } else if max == b { [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(max - b).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/handles/rgb.rs:192:12 [INFO] [stderr] | [INFO] [stderr] 192 | } else if max == b { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/handles/rgb.rs:215:2 [INFO] [stderr] | [INFO] [stderr] 215 | let mut alpha = 1f32; [INFO] [stderr] | _____^ [INFO] [stderr] 216 | | [INFO] [stderr] 217 | | if cap.len() == 4 { [INFO] [stderr] 218 | | alpha = cap[3]; [INFO] [stderr] 219 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let alpha = if cap.len() == 4 { cap[3] } else { 1f32 };` [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: float has excessive precision [INFO] [stderr] --> src/handles/hsl.rs:16:10 [INFO] [stderr] | [INFO] [stderr] 16 | if ti < 0.166666666 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.166_666_67` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::excessive_precision)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/handles/hsl.rs:22:10 [INFO] [stderr] | [INFO] [stderr] 22 | if ti < 0.666666666 { [INFO] [stderr] | ^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.666_666_7` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/handles/hsl.rs:23:28 [INFO] [stderr] | [INFO] [stderr] 23 | return pi + (qi - pi) * (0.666666666 - ti) * 6f32; [INFO] [stderr] | ^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.666_666_7` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/handles/hsl.rs:73:3 [INFO] [stderr] | [INFO] [stderr] 73 | let rgb; [INFO] [stderr] | _________^ [INFO] [stderr] 74 | | if color.alpha { [INFO] [stderr] 75 | | rgb = format!("rgba({},{},{},{})", r, g, b, alpha); [INFO] [stderr] 76 | | } else { [INFO] [stderr] 77 | | rgb = format!("rgb({},{},{})", r, g, b); [INFO] [stderr] 78 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let rgb = if color.alpha { $ crate :: fmt :: format ( format_args ! ( $ ( $ arg ) * ) ) } else { $ crate :: fmt :: format ( format_args ! ( $ ( $ arg ) * ) ) };` [INFO] [stderr] | [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/handles/hsl.rs:53:3 [INFO] [stderr] | [INFO] [stderr] 53 | h = h / 360f32; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `h /= 360f32` [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: float has excessive precision [INFO] [stderr] --> src/handles/hsl.rs:68:42 [INFO] [stderr] | [INFO] [stderr] 68 | r = utils::round(handle_hsl(p, q, h + 0.33333333) * 255f32, 2); [INFO] [stderr] | ^^^^^^^^^^ help: consider changing the type or truncating it to: `0.333_333_34` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/handles/hsl.rs:70:42 [INFO] [stderr] | [INFO] [stderr] 70 | b = utils::round(handle_hsl(p, q, h - 0.33333333) * 255f32, 2); [INFO] [stderr] | ^^^^^^^^^^ help: consider changing the type or truncating it to: `0.333_333_34` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/handles/hsl.rs:104:3 [INFO] [stderr] | [INFO] [stderr] 104 | let hsl; [INFO] [stderr] | _________^ [INFO] [stderr] 105 | | if color.alpha { [INFO] [stderr] 106 | | hsl = format!("hsla({},{},{},{})", &value["h"], &value["s"], &value["l"], alpha); [INFO] [stderr] 107 | | } else { [INFO] [stderr] 108 | | hsl = format!("hsl({},{},{})", &value["h"], &value["s"], &value["l"]); [INFO] [stderr] 109 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let hsl = if color.alpha { $ crate :: fmt :: format ( format_args ! ( $ ( $ arg ) * ) ) } else { $ crate :: fmt :: format ( format_args ! ( $ ( $ arg ) * ) ) };` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/handles/hsv.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | if let Some(_) = cap { [INFO] [stderr] | _____- ^^^^^^^ [INFO] [stderr] 100 | | let hsv = hsv.to_owned(); [INFO] [stderr] 101 | | return Ok(if color.upper {hsv.to_uppercase()} else {hsv}); [INFO] [stderr] 102 | | } [INFO] [stderr] | |_____- help: try this: `if cap.is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: This binary expression can be simplified [INFO] [stderr] --> src/utils.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | if alpha == 1f32 || alpha > 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `alpha >= 1f32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_comparisons)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/utils.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | if alpha == 1f32 || alpha > 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(alpha - 1f32).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/utils.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | if alpha == 1f32 || alpha > 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/utils.rs:58:2 [INFO] [stderr] | [INFO] [stderr] 58 | let result; [INFO] [stderr] | _____^ [INFO] [stderr] 59 | | if value.contains("%") { [INFO] [stderr] 60 | | let n = value.replace("%", ""); [INFO] [stderr] 61 | | result = match n.parse::() { [INFO] [stderr] ... | [INFO] [stderr] 69 | | }; [INFO] [stderr] 70 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 58 | let result = if value.contains("%") { ..; match n.parse::() { [INFO] [stderr] 59 | Ok(value) => value / 100f32, [INFO] [stderr] 60 | Err(_error) => 0f32, [INFO] [stderr] 61 | } } else { match value.parse::() { [INFO] [stderr] 62 | Ok(value) => value / 255f32, [INFO] [stderr] 63 | Err(_error) => 0f32, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/utils.rs:59:20 [INFO] [stderr] | [INFO] [stderr] 59 | if value.contains("%") { [INFO] [stderr] | ^^^ help: try using a char instead: `'%'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/utils.rs:78:2 [INFO] [stderr] | [INFO] [stderr] 78 | let result; [INFO] [stderr] | _____^ [INFO] [stderr] 79 | | if value.contains("%") { [INFO] [stderr] 80 | | let n = value.replace("%", ""); [INFO] [stderr] 81 | | result = match n.parse::() { [INFO] [stderr] ... | [INFO] [stderr] 89 | | }; [INFO] [stderr] 90 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 78 | let result = if value.contains("%") { ..; match n.parse::() { [INFO] [stderr] 79 | Ok(value) => value / 100f32, [INFO] [stderr] 80 | Err(_error) => 0f32, [INFO] [stderr] 81 | } } else { match value.parse::() { [INFO] [stderr] 82 | Ok(value) => value, [INFO] [stderr] 83 | Err(_error) => 0f32, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/utils.rs:79:20 [INFO] [stderr] | [INFO] [stderr] 79 | if value.contains("%") { [INFO] [stderr] | ^^^ help: try using a char instead: `'%'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] error: aborting due to 11 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `color-convert`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "b850ec546b9ee321183165e8855cf6d5dbf4e1dacffa810d74dd8e9d2b1d91ec"` [INFO] running `"docker" "rm" "-f" "b850ec546b9ee321183165e8855cf6d5dbf4e1dacffa810d74dd8e9d2b1d91ec"` [INFO] [stdout] b850ec546b9ee321183165e8855cf6d5dbf4e1dacffa810d74dd8e9d2b1d91ec