[INFO] crate smartcrop 0.1.0 is already in cache [INFO] extracting crate smartcrop 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/smartcrop/0.1.0 [INFO] extracting crate smartcrop 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/smartcrop/0.1.0 [INFO] validating manifest of smartcrop-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 smartcrop-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 smartcrop-0.1.0 [INFO] finished frobbing smartcrop-0.1.0 [INFO] frobbed toml for smartcrop-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/smartcrop/0.1.0/Cargo.toml [INFO] started frobbing smartcrop-0.1.0 [INFO] finished frobbing smartcrop-0.1.0 [INFO] frobbed toml for smartcrop-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/smartcrop/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 smartcrop-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-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/smartcrop/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] 366a34d59bb81fa712d739df269f6c011572adc4e0baebe1e012f5a6e67065ac [INFO] running `"docker" "start" "-a" "366a34d59bb81fa712d739df269f6c011572adc4e0baebe1e012f5a6e67065ac"` [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking png v0.12.0 [INFO] [stderr] Compiling num-derive v0.2.4 [INFO] [stderr] Checking jpeg-decoder v0.1.15 [INFO] [stderr] Checking rusty-fork v0.2.1 [INFO] [stderr] Checking proptest v0.7.2 [INFO] [stderr] Checking image v0.19.0 [INFO] [stderr] Checking smartcrop v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/lib.rs:309:17 [INFO] [stderr] | [INFO] [stderr] 309 | let g = bounds(lightness); [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: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:311:28 [INFO] [stderr] | [INFO] [stderr] 311 | let nc = RGB { g: g, ..color }; [INFO] [stderr] | ^^^^ help: replace it with: `g` [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/lib.rs:418:9 [INFO] [stderr] | [INFO] [stderr] 418 | skin: skin, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `skin` [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/lib.rs:419:9 [INFO] [stderr] | [INFO] [stderr] 419 | detail: detail, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `detail` [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/lib.rs:420:9 [INFO] [stderr] | [INFO] [stderr] 420 | saturation: saturation, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `saturation` [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/lib.rs:421:9 [INFO] [stderr] | [INFO] [stderr] 421 | total: total [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `total` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/lib.rs:435:21 [INFO] [stderr] | [INFO] [stderr] 435 | let r = (skin - SKIN_THRESHOLD) * (255.0 / (1.0 - SKIN_THRESHOLD)); [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/lib.rs:462:21 [INFO] [stderr] | [INFO] [stderr] 462 | let b = (saturation - SATURATION_THRESHOLD) * (255.0 / (1.0 - SATURATION_THRESHOLD)); [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/image.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let b = px[2]; [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/lib.rs:309:17 [INFO] [stderr] | [INFO] [stderr] 309 | let g = bounds(lightness); [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: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:311:28 [INFO] [stderr] | [INFO] [stderr] 311 | let nc = RGB { g: g, ..color }; [INFO] [stderr] | ^^^^ help: replace it with: `g` [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/lib.rs:418:9 [INFO] [stderr] | [INFO] [stderr] 418 | skin: skin, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `skin` [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/lib.rs:419:9 [INFO] [stderr] | [INFO] [stderr] 419 | detail: detail, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `detail` [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/lib.rs:420:9 [INFO] [stderr] | [INFO] [stderr] 420 | saturation: saturation, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `saturation` [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/lib.rs:421:9 [INFO] [stderr] | [INFO] [stderr] 421 | total: total [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `total` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/lib.rs:435:21 [INFO] [stderr] | [INFO] [stderr] 435 | let r = (skin - SKIN_THRESHOLD) * (255.0 / (1.0 - SKIN_THRESHOLD)); [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/lib.rs:462:21 [INFO] [stderr] | [INFO] [stderr] 462 | let b = (saturation - SATURATION_THRESHOLD) * (255.0 / (1.0 - SATURATION_THRESHOLD)); [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/image.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let b = px[2]; [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: unneeded return statement [INFO] [stderr] --> src/math.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | return f64::max(1.0 - x * x, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `f64::max(1.0 - x * x, 0.0)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/lib.rs:272:45 [INFO] [stderr] | [INFO] [stderr] 272 | crop [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/lib.rs:271:56 [INFO] [stderr] | [INFO] [stderr] 271 | let crop = ScoredCrop { crop: crop.clone(), score: score(&score_output, &crop) }; [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: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/lib.rs:436:27 [INFO] [stderr] | [INFO] [stderr] 436 | let RGB { r: _, g, b } = o.get(x, y); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `RGB { g, b, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/lib.rs:440:27 [INFO] [stderr] | [INFO] [stderr] 440 | let RGB { r: _, g, b } = o.get(x, y); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `RGB { g, b, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/lib.rs:463:33 [INFO] [stderr] | [INFO] [stderr] 463 | let RGB { r, g, b: _ } = o.get(x, y); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `RGB { r, g, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/lib.rs:466:33 [INFO] [stderr] | [INFO] [stderr] 466 | let RGB { r, g, b: _ } = o.get(x, y); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `RGB { r, g, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:30:14 [INFO] [stderr] | [INFO] [stderr] 30 | 0.5126 * c.b as f64 + 0.7152 * c.g as f64 + 0.0722 * c.r as f64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.b)` [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: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:30:36 [INFO] [stderr] | [INFO] [stderr] 30 | 0.5126 * c.b as f64 + 0.7152 * c.g as f64 + 0.0722 * c.r as f64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:30:58 [INFO] [stderr] | [INFO] [stderr] 30 | 0.5126 * c.b as f64 + 0.7152 * c.g as f64 + 0.0722 * c.r as f64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:34:16 [INFO] [stderr] | [INFO] [stderr] 34 | let mag = (c.r as f64 * c.r as f64 + c.g as f64 * c.g as f64 + c.b as f64 * c.b as f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:34:29 [INFO] [stderr] | [INFO] [stderr] 34 | let mag = (c.r as f64 * c.r as f64 + c.g as f64 * c.g as f64 + c.b as f64 * c.b as f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:34:42 [INFO] [stderr] | [INFO] [stderr] 34 | let mag = (c.r as f64 * c.r as f64 + c.g as f64 * c.g as f64 + c.b as f64 * c.b as f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:34:55 [INFO] [stderr] | [INFO] [stderr] 34 | let mag = (c.r as f64 * c.r as f64 + c.g as f64 * c.g as f64 + c.b as f64 * c.b as f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:34:68 [INFO] [stderr] | [INFO] [stderr] 34 | let mag = (c.r as f64 * c.r as f64 + c.g as f64 * c.g as f64 + c.b as f64 * c.b as f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.b)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:34:81 [INFO] [stderr] | [INFO] [stderr] 34 | let mag = (c.r as f64 * c.r as f64 + c.g as f64 * c.g as f64 + c.b as f64 * c.b as f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.b)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:35:14 [INFO] [stderr] | [INFO] [stderr] 35 | let rd = c.r as f64 / mag - SKIN_COLOR[0]; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:36:14 [INFO] [stderr] | [INFO] [stderr] 36 | let gd = c.g as f64 / mag - SKIN_COLOR[1]; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:37:14 [INFO] [stderr] | [INFO] [stderr] 37 | let bd = c.b as f64 / mag - SKIN_COLOR[2]; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.b)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:45:37 [INFO] [stderr] | [INFO] [stderr] 45 | let maximum = f64::max(f64::max(c.r as f64 / 255.0, c.g as f64 / 255.0), c.b as f64 / 255.0); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:45:57 [INFO] [stderr] | [INFO] [stderr] 45 | let maximum = f64::max(f64::max(c.r as f64 / 255.0, c.g as f64 / 255.0), c.b as f64 / 255.0); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:45:78 [INFO] [stderr] | [INFO] [stderr] 45 | let maximum = f64::max(f64::max(c.r as f64 / 255.0, c.g as f64 / 255.0), c.b as f64 / 255.0); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.b)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:46:37 [INFO] [stderr] | [INFO] [stderr] 46 | let minimum = f64::min(f64::min(c.r as f64 / 255.0, c.g as f64 / 255.0), c.b as f64 / 255.0); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:46:57 [INFO] [stderr] | [INFO] [stderr] 46 | let minimum = f64::min(f64::min(c.r as f64 / 255.0, c.g as f64 / 255.0), c.b as f64 / 255.0); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:46:78 [INFO] [stderr] | [INFO] [stderr] 46 | let minimum = f64::min(f64::min(c.r as f64 / 255.0, c.g as f64 / 255.0), c.b as f64 / 255.0); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.b)` [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:49:8 [INFO] [stderr] | [INFO] [stderr] 49 | if maximum == minimum { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(maximum - minimum).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/math.rs:49:8 [INFO] [stderr] | [INFO] [stderr] 49 | if maximum == minimum { [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:68:14 [INFO] [stderr] | [INFO] [stderr] 68 | let xf = (x - crop.x) as f64 / (crop.width as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x - crop.x)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:68:36 [INFO] [stderr] | [INFO] [stderr] 68 | let xf = (x - crop.x) as f64 / (crop.width as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(crop.width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:69:14 [INFO] [stderr] | [INFO] [stderr] 69 | let yf = (y - crop.y) as f64 / (crop.height as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(y - crop.y)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:69:36 [INFO] [stderr] | [INFO] [stderr] 69 | let yf = (y - crop.y) as f64 / (crop.height as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(crop.height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:82:17 [INFO] [stderr] | [INFO] [stderr] 82 | x: (self.x as f64 * ratio).round() as u32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.x)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:83:17 [INFO] [stderr] | [INFO] [stderr] 83 | y: (self.y as f64 * ratio).round() as u32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.y)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | width: (self.width as f64 * ratio).round() as u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:85:22 [INFO] [stderr] | [INFO] [stderr] 85 | height: (self.height as f64 * ratio).round() as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:143:22 [INFO] [stderr] | [INFO] [stderr] 143 | let width = (self.width as f64 / factor as f64).floor() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:143:42 [INFO] [stderr] | [INFO] [stderr] 143 | let width = (self.width as f64 / factor as f64).floor() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(factor)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:144:23 [INFO] [stderr] | [INFO] [stderr] 144 | let height = (self.height as f64 / factor as f64).floor() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:144:44 [INFO] [stderr] | [INFO] [stderr] 144 | let height = (self.height as f64 / factor as f64).floor() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(factor)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:147:36 [INFO] [stderr] | [INFO] [stderr] 147 | let ifactor2: f64 = 1.0 / (factor as f64 * factor as f64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(factor)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:147:52 [INFO] [stderr] | [INFO] [stderr] 147 | let ifactor2: f64 = 1.0 / (factor as f64 * factor as f64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(factor)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:172:30 [INFO] [stderr] | [INFO] [stderr] 172 | r += icolor.r as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(icolor.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:173:30 [INFO] [stderr] | [INFO] [stderr] 173 | g += icolor.g as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(icolor.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:174:30 [INFO] [stderr] | [INFO] [stderr] 174 | b += icolor.b as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(icolor.b)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:175:38 [INFO] [stderr] | [INFO] [stderr] 175 | mr = max(mr, icolor.r as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(icolor.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:176:38 [INFO] [stderr] | [INFO] [stderr] 176 | mg = max(mg, icolor.g as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(icolor.g)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:213:21 [INFO] [stderr] | [INFO] [stderr] 213 | let width = width as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:214:22 [INFO] [stderr] | [INFO] [stderr] 214 | let height = height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:216:30 [INFO] [stderr] | [INFO] [stderr] 216 | let scale = f64::min((img.width() as f64) / width, (img.height() as f64) / height); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.width())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:216:60 [INFO] [stderr] | [INFO] [stderr] 216 | let scale = f64::min((img.width() as f64) / width, (img.height() as f64) / height); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.height())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:220:45 [INFO] [stderr] | [INFO] [stderr] 220 | let f = PRESCALE_MIN / f64::min(img.width() as f64, img.height() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.width())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:220:65 [INFO] [stderr] | [INFO] [stderr] 220 | let f = PRESCALE_MIN / f64::min(img.width() as f64, img.height() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.height())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:227:30 [INFO] [stderr] | [INFO] [stderr] 227 | let new_width = ((img.width() as f64) * prescalefactor).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.width())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:228:31 [INFO] [stderr] | [INFO] [stderr] 228 | let new_height = (new_width as f64 / img.width() as f64 * img.height() as f64).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(new_width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:228:50 [INFO] [stderr] | [INFO] [stderr] 228 | let new_height = (new_width as f64 / img.width() as f64 * img.height() as f64).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.width())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:228:71 [INFO] [stderr] | [INFO] [stderr] 228 | let new_height = (new_width as f64 / img.width() as f64 * img.height() as f64).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.height())` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:321:16 [INFO] [stderr] | [INFO] [stderr] 321 | let size = w as u64 * h as u64; [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(w)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:321:27 [INFO] [stderr] | [INFO] [stderr] 321 | let size = w as u64 * h as u64; [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(h)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:346:17 [INFO] [stderr] | [INFO] [stderr] 346 | let width = i.width as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(i.width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:347:18 [INFO] [stderr] | [INFO] [stderr] 347 | let height = i.height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(i.height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:351:39 [INFO] [stderr] | [INFO] [stderr] 351 | let crop_w = if crop_width != 0 { crop_width as f64 } else { min_dimension }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(crop_width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:352:40 [INFO] [stderr] | [INFO] [stderr] 352 | let crop_h = if crop_height != 0 { crop_height as f64 } else { min_dimension }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(crop_height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:385:18 [INFO] [stderr] | [INFO] [stderr] 385 | let height = o.height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(o.height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:386:17 [INFO] [stderr] | [INFO] [stderr] 386 | let width = o.width as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(o.width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:397:33 [INFO] [stderr] | [INFO] [stderr] 397 | for y in (0..).map(|i: u32| i as f64 * SCORE_DOWN_SAMPLE) [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:399:37 [INFO] [stderr] | [INFO] [stderr] 399 | for x in (0..).map(|i: u32| i as f64 * SCORE_DOWN_SAMPLE) [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:407:23 [INFO] [stderr] | [INFO] [stderr] 407 | let det = color.g as f64 / 255.0; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(color.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:409:21 [INFO] [stderr] | [INFO] [stderr] 409 | skin += color.r as f64 / 255.0 * (det + SKIN_BIAS) * imp; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(color.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:411:27 [INFO] [stderr] | [INFO] [stderr] 411 | saturation += color.b as f64 / 255.0 * (det + SATURATION_BIAS) * imp; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(color.b)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:415:98 [INFO] [stderr] | [INFO] [stderr] 415 | let total = (detail * DETAIL_WEIGHT + skin * SKIN_WEIGHT + saturation * SATURATION_WEIGHT) / crop.width as f64 / crop.height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(crop.width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:415:118 [INFO] [stderr] | [INFO] [stderr] 415 | let total = (detail * DETAIL_WEIGHT + skin * SKIN_WEIGHT + saturation * SATURATION_WEIGHT) / crop.width as f64 / crop.height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(crop.height)` [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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `smartcrop`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/math.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | return f64::max(1.0 - x * x, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `f64::max(1.0 - x * x, 0.0)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/math.rs:117:20 [INFO] [stderr] | [INFO] [stderr] 117 | assert_eq!(331.49999999999994, cie(gray(255))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `331.499_999_999_999_94` [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/math.rs:123:20 [INFO] [stderr] | [INFO] [stderr] 123 | assert_eq!(0.7550795306611965, skin_col(gray(255))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.755_079_530_661_196_5` [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/math.rs:139:14 [INFO] [stderr] | [INFO] [stderr] 139 | -6.404213562373096, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `6.404_213_562_373_096` [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/lib.rs:272:45 [INFO] [stderr] | [INFO] [stderr] 272 | crop [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/lib.rs:271:56 [INFO] [stderr] | [INFO] [stderr] 271 | let crop = ScoredCrop { crop: crop.clone(), score: score(&score_output, &crop) }; [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: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/lib.rs:436:27 [INFO] [stderr] | [INFO] [stderr] 436 | let RGB { r: _, g, b } = o.get(x, y); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `RGB { g, b, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/lib.rs:440:27 [INFO] [stderr] | [INFO] [stderr] 440 | let RGB { r: _, g, b } = o.get(x, y); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `RGB { g, b, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/lib.rs:463:33 [INFO] [stderr] | [INFO] [stderr] 463 | let RGB { r, g, b: _ } = o.get(x, y); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `RGB { r, g, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/lib.rs:466:33 [INFO] [stderr] | [INFO] [stderr] 466 | let RGB { r, g, b: _ } = o.get(x, y); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `RGB { r, g, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tests.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | return TestImage{w: width, h: height, pixels: self.pixels.clone()}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `TestImage{w: width, h: height, pixels: self.pixels.clone()}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/tests.rs:169:18 [INFO] [stderr] | [INFO] [stderr] 169 | detail: -6.404213562373096, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `6.404_213_562_373_096` [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/tests.rs:170:22 [INFO] [stderr] | [INFO] [stderr] 170 | saturation: -7.685056274847715, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `7.685_056_274_847_715` [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/tests.rs:171:16 [INFO] [stderr] | [INFO] [stderr] 171 | skin: -6.468255697996827, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `6.468_255_697_996_827` [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/tests.rs:172:17 [INFO] [stderr] | [INFO] [stderr] 172 | total: -13.692208596353678 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `13.692_208_596_353_678` [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/tests.rs:291:36 [INFO] [stderr] | [INFO] [stderr] 291 | assert_eq!(crop.score.detail, -1.7647058823529413); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `1.764_705_882_352_941_3` [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/tests.rs:292:34 [INFO] [stderr] | [INFO] [stderr] 292 | assert_eq!(crop.score.skin, -0.03993215515362048); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `0.039_932_155_153_620_48` [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/tests.rs:293:35 [INFO] [stderr] | [INFO] [stderr] 293 | assert_eq!(crop.score.total, -0.006637797746048519); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `0.006_637_797_746_048_519` [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/tests.rs:319:36 [INFO] [stderr] | [INFO] [stderr] 319 | assert_eq!(crop.score.detail, -4.040026482281278); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `4.040_026_482_281_278` [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/tests.rs:320:40 [INFO] [stderr] | [INFO] [stderr] 320 | assert_eq!(crop.score.saturation, -0.3337408688965783); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.333_740_868_896_578_3` [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/tests.rs:321:34 [INFO] [stderr] | [INFO] [stderr] 321 | assert_eq!(crop.score.skin, -0.13811572472126107); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider: `0.138_115_724_721_261_07` [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/tests.rs:322:35 [INFO] [stderr] | [INFO] [stderr] 322 | assert_eq!(crop.score.total, -0.017031057622565366); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `0.017_031_057_622_565_366` [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/tests.rs:409:36 [INFO] [stderr] | [INFO] [stderr] 409 | assert_eq!(crop.score.detail, -3.7420698854650642); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `3.742_069_885_465_064_2` [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/tests.rs:410:40 [INFO] [stderr] | [INFO] [stderr] 410 | assert_eq!(crop.score.saturation, -1.713699592238245); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `1.713_699_592_238_245` [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/tests.rs:411:34 [INFO] [stderr] | [INFO] [stderr] 411 | assert_eq!(crop.score.skin, -0.5821112502841688); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.582_111_250_284_168_8` [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/tests.rs:412:35 [INFO] [stderr] | [INFO] [stderr] 412 | assert_eq!(crop.score.total, -0.030743502919192832); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `0.030_743_502_919_192_832` [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: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:30:14 [INFO] [stderr] | [INFO] [stderr] 30 | 0.5126 * c.b as f64 + 0.7152 * c.g as f64 + 0.0722 * c.r as f64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.b)` [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: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:30:36 [INFO] [stderr] | [INFO] [stderr] 30 | 0.5126 * c.b as f64 + 0.7152 * c.g as f64 + 0.0722 * c.r as f64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:30:58 [INFO] [stderr] | [INFO] [stderr] 30 | 0.5126 * c.b as f64 + 0.7152 * c.g as f64 + 0.0722 * c.r as f64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:34:16 [INFO] [stderr] | [INFO] [stderr] 34 | let mag = (c.r as f64 * c.r as f64 + c.g as f64 * c.g as f64 + c.b as f64 * c.b as f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:34:29 [INFO] [stderr] | [INFO] [stderr] 34 | let mag = (c.r as f64 * c.r as f64 + c.g as f64 * c.g as f64 + c.b as f64 * c.b as f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:34:42 [INFO] [stderr] | [INFO] [stderr] 34 | let mag = (c.r as f64 * c.r as f64 + c.g as f64 * c.g as f64 + c.b as f64 * c.b as f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:34:55 [INFO] [stderr] | [INFO] [stderr] 34 | let mag = (c.r as f64 * c.r as f64 + c.g as f64 * c.g as f64 + c.b as f64 * c.b as f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:34:68 [INFO] [stderr] | [INFO] [stderr] 34 | let mag = (c.r as f64 * c.r as f64 + c.g as f64 * c.g as f64 + c.b as f64 * c.b as f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.b)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:34:81 [INFO] [stderr] | [INFO] [stderr] 34 | let mag = (c.r as f64 * c.r as f64 + c.g as f64 * c.g as f64 + c.b as f64 * c.b as f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.b)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:35:14 [INFO] [stderr] | [INFO] [stderr] 35 | let rd = c.r as f64 / mag - SKIN_COLOR[0]; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:36:14 [INFO] [stderr] | [INFO] [stderr] 36 | let gd = c.g as f64 / mag - SKIN_COLOR[1]; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:37:14 [INFO] [stderr] | [INFO] [stderr] 37 | let bd = c.b as f64 / mag - SKIN_COLOR[2]; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.b)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:45:37 [INFO] [stderr] | [INFO] [stderr] 45 | let maximum = f64::max(f64::max(c.r as f64 / 255.0, c.g as f64 / 255.0), c.b as f64 / 255.0); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:45:57 [INFO] [stderr] | [INFO] [stderr] 45 | let maximum = f64::max(f64::max(c.r as f64 / 255.0, c.g as f64 / 255.0), c.b as f64 / 255.0); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:45:78 [INFO] [stderr] | [INFO] [stderr] 45 | let maximum = f64::max(f64::max(c.r as f64 / 255.0, c.g as f64 / 255.0), c.b as f64 / 255.0); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.b)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:46:37 [INFO] [stderr] | [INFO] [stderr] 46 | let minimum = f64::min(f64::min(c.r as f64 / 255.0, c.g as f64 / 255.0), c.b as f64 / 255.0); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:46:57 [INFO] [stderr] | [INFO] [stderr] 46 | let minimum = f64::min(f64::min(c.r as f64 / 255.0, c.g as f64 / 255.0), c.b as f64 / 255.0); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:46:78 [INFO] [stderr] | [INFO] [stderr] 46 | let minimum = f64::min(f64::min(c.r as f64 / 255.0, c.g as f64 / 255.0), c.b as f64 / 255.0); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c.b)` [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:49:8 [INFO] [stderr] | [INFO] [stderr] 49 | if maximum == minimum { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(maximum - minimum).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/math.rs:49:8 [INFO] [stderr] | [INFO] [stderr] 49 | if maximum == minimum { [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:68:14 [INFO] [stderr] | [INFO] [stderr] 68 | let xf = (x - crop.x) as f64 / (crop.width as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x - crop.x)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:68:36 [INFO] [stderr] | [INFO] [stderr] 68 | let xf = (x - crop.x) as f64 / (crop.width as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(crop.width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:69:14 [INFO] [stderr] | [INFO] [stderr] 69 | let yf = (y - crop.y) as f64 / (crop.height as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(y - crop.y)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/math.rs:69:36 [INFO] [stderr] | [INFO] [stderr] 69 | let yf = (y - crop.y) as f64 / (crop.height as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(crop.height)` [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | assert_eq!(1.0, chop(1.1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | assert_eq!(1.0, chop(1.1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | assert_eq!(-1.0, chop(-1.1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | assert_eq!(-1.0, chop(-1.1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:102:9 [INFO] [stderr] | [INFO] [stderr] 102 | assert_eq!(0.0, thirds(0.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:102:9 [INFO] [stderr] | [INFO] [stderr] 102 | assert_eq!(0.0, thirds(0.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | assert_eq!(0.0, cie(gray(0))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | assert_eq!(0.0, cie(gray(0))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | assert_eq!(331.49999999999994, cie(gray(255))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | assert_eq!(331.49999999999994, cie(gray(255))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | assert_eq!(0.7550795306611965, skin_col(gray(255))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | assert_eq!(0.7550795306611965, skin_col(gray(255))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | assert_eq!(0.0, saturation(gray(0))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | assert_eq!(0.0, saturation(gray(0))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | assert_eq!(0.0, saturation(gray(255))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | assert_eq!(0.0, saturation(gray(255))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | assert_eq!(1.0, saturation(RGB::new(255, 0, 0))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | assert_eq!(1.0, saturation(RGB::new(255, 0, 0))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | assert_eq!(1.0, saturation(RGB::new(0, 255, 0))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | assert_eq!(1.0, saturation(RGB::new(0, 255, 0))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | assert_eq!(1.0, saturation(RGB::new(0, 0, 255))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | assert_eq!(1.0, saturation(RGB::new(0, 0, 255))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | assert_eq!(1.0, saturation(RGB::new(0, 255, 255))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | assert_eq!(1.0, saturation(RGB::new(0, 255, 255))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | / assert_eq!( [INFO] [stderr] 139 | | -6.404213562373096, [INFO] [stderr] 140 | | importance( [INFO] [stderr] 141 | | &Crop { x: 0, y: 0, width: 1, height: 1 }, [INFO] [stderr] 142 | | 0, [INFO] [stderr] 143 | | 0) [INFO] [stderr] 144 | | ); [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | / assert_eq!( [INFO] [stderr] 139 | | -6.404213562373096, [INFO] [stderr] 140 | | importance( [INFO] [stderr] 141 | | &Crop { x: 0, y: 0, width: 1, height: 1 }, [INFO] [stderr] 142 | | 0, [INFO] [stderr] 143 | | 0) [INFO] [stderr] 144 | | ); [INFO] [stderr] | |__________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:82:17 [INFO] [stderr] | [INFO] [stderr] 82 | x: (self.x as f64 * ratio).round() as u32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.x)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:83:17 [INFO] [stderr] | [INFO] [stderr] 83 | y: (self.y as f64 * ratio).round() as u32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.y)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:84:21 [INFO] [stderr] | [INFO] [stderr] 84 | width: (self.width as f64 * ratio).round() as u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:85:22 [INFO] [stderr] | [INFO] [stderr] 85 | height: (self.height as f64 * ratio).round() as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:143:22 [INFO] [stderr] | [INFO] [stderr] 143 | let width = (self.width as f64 / factor as f64).floor() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:143:42 [INFO] [stderr] | [INFO] [stderr] 143 | let width = (self.width as f64 / factor as f64).floor() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(factor)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:144:23 [INFO] [stderr] | [INFO] [stderr] 144 | let height = (self.height as f64 / factor as f64).floor() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:144:44 [INFO] [stderr] | [INFO] [stderr] 144 | let height = (self.height as f64 / factor as f64).floor() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(factor)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:147:36 [INFO] [stderr] | [INFO] [stderr] 147 | let ifactor2: f64 = 1.0 / (factor as f64 * factor as f64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(factor)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:147:52 [INFO] [stderr] | [INFO] [stderr] 147 | let ifactor2: f64 = 1.0 / (factor as f64 * factor as f64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(factor)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:172:30 [INFO] [stderr] | [INFO] [stderr] 172 | r += icolor.r as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(icolor.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:173:30 [INFO] [stderr] | [INFO] [stderr] 173 | g += icolor.g as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(icolor.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:174:30 [INFO] [stderr] | [INFO] [stderr] 174 | b += icolor.b as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(icolor.b)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:175:38 [INFO] [stderr] | [INFO] [stderr] 175 | mr = max(mr, icolor.r as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(icolor.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:176:38 [INFO] [stderr] | [INFO] [stderr] 176 | mg = max(mg, icolor.g as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(icolor.g)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:213:21 [INFO] [stderr] | [INFO] [stderr] 213 | let width = width as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:214:22 [INFO] [stderr] | [INFO] [stderr] 214 | let height = height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:216:30 [INFO] [stderr] | [INFO] [stderr] 216 | let scale = f64::min((img.width() as f64) / width, (img.height() as f64) / height); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.width())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:216:60 [INFO] [stderr] | [INFO] [stderr] 216 | let scale = f64::min((img.width() as f64) / width, (img.height() as f64) / height); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.height())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:220:45 [INFO] [stderr] | [INFO] [stderr] 220 | let f = PRESCALE_MIN / f64::min(img.width() as f64, img.height() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.width())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:220:65 [INFO] [stderr] | [INFO] [stderr] 220 | let f = PRESCALE_MIN / f64::min(img.width() as f64, img.height() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.height())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:227:30 [INFO] [stderr] | [INFO] [stderr] 227 | let new_width = ((img.width() as f64) * prescalefactor).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.width())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:228:31 [INFO] [stderr] | [INFO] [stderr] 228 | let new_height = (new_width as f64 / img.width() as f64 * img.height() as f64).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(new_width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:228:50 [INFO] [stderr] | [INFO] [stderr] 228 | let new_height = (new_width as f64 / img.width() as f64 * img.height() as f64).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.width())` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:228:71 [INFO] [stderr] | [INFO] [stderr] 228 | let new_height = (new_width as f64 / img.width() as f64 * img.height() as f64).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(img.height())` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:321:16 [INFO] [stderr] | [INFO] [stderr] 321 | let size = w as u64 * h as u64; [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(w)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:321:27 [INFO] [stderr] | [INFO] [stderr] 321 | let size = w as u64 * h as u64; [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(h)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:346:17 [INFO] [stderr] | [INFO] [stderr] 346 | let width = i.width as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(i.width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:347:18 [INFO] [stderr] | [INFO] [stderr] 347 | let height = i.height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(i.height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:351:39 [INFO] [stderr] | [INFO] [stderr] 351 | let crop_w = if crop_width != 0 { crop_width as f64 } else { min_dimension }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(crop_width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:352:40 [INFO] [stderr] | [INFO] [stderr] 352 | let crop_h = if crop_height != 0 { crop_height as f64 } else { min_dimension }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(crop_height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:385:18 [INFO] [stderr] | [INFO] [stderr] 385 | let height = o.height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(o.height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:386:17 [INFO] [stderr] | [INFO] [stderr] 386 | let width = o.width as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(o.width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:397:33 [INFO] [stderr] | [INFO] [stderr] 397 | for y in (0..).map(|i: u32| i as f64 * SCORE_DOWN_SAMPLE) [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:399:37 [INFO] [stderr] | [INFO] [stderr] 399 | for x in (0..).map(|i: u32| i as f64 * SCORE_DOWN_SAMPLE) [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:407:23 [INFO] [stderr] | [INFO] [stderr] 407 | let det = color.g as f64 / 255.0; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(color.g)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:409:21 [INFO] [stderr] | [INFO] [stderr] 409 | skin += color.r as f64 / 255.0 * (det + SKIN_BIAS) * imp; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(color.r)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:411:27 [INFO] [stderr] | [INFO] [stderr] 411 | saturation += color.b as f64 / 255.0 * (det + SATURATION_BIAS) * imp; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(color.b)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:415:98 [INFO] [stderr] | [INFO] [stderr] 415 | let total = (detail * DETAIL_WEIGHT + skin * SKIN_WEIGHT + saturation * SATURATION_WEIGHT) / crop.width as f64 / crop.height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(crop.width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:415:118 [INFO] [stderr] | [INFO] [stderr] 415 | let total = (detail * DETAIL_WEIGHT + skin * SKIN_WEIGHT + saturation * SATURATION_WEIGHT) / crop.width as f64 / crop.height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(crop.height)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tests.rs:88:23 [INFO] [stderr] | [INFO] [stderr] 88 | let height = (self.h as f64 * width as f64 / self.w as f64).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.h)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tests.rs:88:39 [INFO] [stderr] | [INFO] [stderr] 88 | let height = (self.h as f64 * width as f64 / self.w as f64).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tests.rs:88:54 [INFO] [stderr] | [INFO] [stderr] 88 | let height = (self.h as f64 * width as f64 / self.w as f64).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.w)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tests.rs:117:23 [INFO] [stderr] | [INFO] [stderr] 117 | let height = (self.h as f64 * width as f64 / self.w as f64).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.h)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tests.rs:117:39 [INFO] [stderr] | [INFO] [stderr] 117 | let height = (self.h as f64 * width as f64 / self.w as f64).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(width)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tests.rs:117:54 [INFO] [stderr] | [INFO] [stderr] 117 | let height = (self.h as f64 * width as f64 / self.w as f64).round() as u32; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.w)` [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/tests.rs:290:5 [INFO] [stderr] | [INFO] [stderr] 290 | assert_eq!(crop.score.saturation, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/tests.rs:290:5 [INFO] [stderr] | [INFO] [stderr] 290 | assert_eq!(crop.score.saturation, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/tests.rs:291:5 [INFO] [stderr] | [INFO] [stderr] 291 | assert_eq!(crop.score.detail, -1.7647058823529413); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/tests.rs:291:5 [INFO] [stderr] | [INFO] [stderr] 291 | assert_eq!(crop.score.detail, -1.7647058823529413); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/tests.rs:292:5 [INFO] [stderr] | [INFO] [stderr] 292 | assert_eq!(crop.score.skin, -0.03993215515362048); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/tests.rs:292:5 [INFO] [stderr] | [INFO] [stderr] 292 | assert_eq!(crop.score.skin, -0.03993215515362048); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/tests.rs:293:5 [INFO] [stderr] | [INFO] [stderr] 293 | assert_eq!(crop.score.total, -0.006637797746048519); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/tests.rs:293:5 [INFO] [stderr] | [INFO] [stderr] 293 | assert_eq!(crop.score.total, -0.006637797746048519); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/tests.rs:319:5 [INFO] [stderr] | [INFO] [stderr] 319 | assert_eq!(crop.score.detail, -4.040026482281278); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/tests.rs:319:5 [INFO] [stderr] | [INFO] [stderr] 319 | assert_eq!(crop.score.detail, -4.040026482281278); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/tests.rs:320:5 [INFO] [stderr] | [INFO] [stderr] 320 | assert_eq!(crop.score.saturation, -0.3337408688965783); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/tests.rs:320:5 [INFO] [stderr] | [INFO] [stderr] 320 | assert_eq!(crop.score.saturation, -0.3337408688965783); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/tests.rs:321:5 [INFO] [stderr] | [INFO] [stderr] 321 | assert_eq!(crop.score.skin, -0.13811572472126107); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/tests.rs:321:5 [INFO] [stderr] | [INFO] [stderr] 321 | assert_eq!(crop.score.skin, -0.13811572472126107); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/tests.rs:322:5 [INFO] [stderr] | [INFO] [stderr] 322 | assert_eq!(crop.score.total, -0.017031057622565366); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/tests.rs:322:5 [INFO] [stderr] | [INFO] [stderr] 322 | assert_eq!(crop.score.total, -0.017031057622565366); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/tests.rs:409:5 [INFO] [stderr] | [INFO] [stderr] 409 | assert_eq!(crop.score.detail, -3.7420698854650642); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/tests.rs:409:5 [INFO] [stderr] | [INFO] [stderr] 409 | assert_eq!(crop.score.detail, -3.7420698854650642); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/tests.rs:410:5 [INFO] [stderr] | [INFO] [stderr] 410 | assert_eq!(crop.score.saturation, -1.713699592238245); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/tests.rs:410:5 [INFO] [stderr] | [INFO] [stderr] 410 | assert_eq!(crop.score.saturation, -1.713699592238245); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/tests.rs:411:5 [INFO] [stderr] | [INFO] [stderr] 411 | assert_eq!(crop.score.skin, -0.5821112502841688); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/tests.rs:411:5 [INFO] [stderr] | [INFO] [stderr] 411 | assert_eq!(crop.score.skin, -0.5821112502841688); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/tests.rs:412:5 [INFO] [stderr] | [INFO] [stderr] 412 | assert_eq!(crop.score.total, -0.030743502919192832); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/tests.rs:412:5 [INFO] [stderr] | [INFO] [stderr] 412 | assert_eq!(crop.score.total, -0.030743502919192832); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/tests.rs:426:59 [INFO] [stderr] | [INFO] [stderr] 426 | let colors = prop::collection::vec(0..256u16, size..(size+1)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `size..=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] error: aborting due to 26 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `smartcrop`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "366a34d59bb81fa712d739df269f6c011572adc4e0baebe1e012f5a6e67065ac"` [INFO] running `"docker" "rm" "-f" "366a34d59bb81fa712d739df269f6c011572adc4e0baebe1e012f5a6e67065ac"` [INFO] [stdout] 366a34d59bb81fa712d739df269f6c011572adc4e0baebe1e012f5a6e67065ac