[INFO] crate rexif 0.3.5 is already in cache [INFO] extracting crate rexif 0.3.5 into work/ex/clippy-test-run/sources/stable/reg/rexif/0.3.5 [INFO] extracting crate rexif 0.3.5 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rexif/0.3.5 [INFO] validating manifest of rexif-0.3.5 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 rexif-0.3.5 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 rexif-0.3.5 [INFO] finished frobbing rexif-0.3.5 [INFO] frobbed toml for rexif-0.3.5 written to work/ex/clippy-test-run/sources/stable/reg/rexif/0.3.5/Cargo.toml [INFO] started frobbing rexif-0.3.5 [INFO] finished frobbing rexif-0.3.5 [INFO] frobbed toml for rexif-0.3.5 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rexif/0.3.5/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 rexif-0.3.5 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rexif/0.3.5:/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 -Dclippy::into_iter_on_array" "-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] 8505bb0cf9c57f8ad990c2edf073b02a82e596df007b097a8c964fcbb9232e07 [INFO] running `"docker" "start" "-a" "8505bb0cf9c57f8ad990c2edf073b02a82e596df007b097a8c964fcbb9232e07"` [INFO] [stderr] Checking rexif v0.3.5 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tiff.rs:86:6 [INFO] [stderr] | [INFO] [stderr] 86 | tag: tag, format: ifdformat_new(format), [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tag` [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/tiff.rs:87:6 [INFO] [stderr] | [INFO] [stderr] 87 | count: count, ifd_data: data, le: le, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `count` [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/tiff.rs:87:36 [INFO] [stderr] | [INFO] [stderr] 87 | count: count, ifd_data: data, le: le, [INFO] [stderr] | ^^^^^^ help: replace it with: `le` [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/tiff.rs:86:6 [INFO] [stderr] | [INFO] [stderr] 86 | tag: tag, format: ifdformat_new(format), [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tag` [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/tiff.rs:87:6 [INFO] [stderr] | [INFO] [stderr] 87 | count: count, ifd_data: data, le: le, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `count` [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/tiff.rs:87:36 [INFO] [stderr] | [INFO] [stderr] 87 | count: count, ifd_data: data, le: le, [INFO] [stderr] | ^^^^^^ help: replace it with: `le` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:11:2 [INFO] [stderr] | [INFO] [stderr] 11 | return u as i8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `u as i8` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:31:2 [INFO] [stderr] | [INFO] [stderr] 31 | return u as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `u as i16` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:53:2 [INFO] [stderr] | [INFO] [stderr] 53 | return u as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `u as i32` [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/lowlevel.rs:50:10 [INFO] [stderr] | [INFO] [stderr] 50 | if u >= 0x80000000 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_0000` [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/lowlevel.rs:51:11 [INFO] [stderr] | [INFO] [stderr] 51 | u = u - 0x100000000; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0x0001_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:67:2 [INFO] [stderr] | [INFO] [stderr] 67 | return f; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `f` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:80:2 [INFO] [stderr] | [INFO] [stderr] 80 | return f; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `f` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:88:2 [INFO] [stderr] | [INFO] [stderr] 88 | return URational{numerator: n, denominator: d}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `URational{numerator: n, denominator: d}` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:96:2 [INFO] [stderr] | [INFO] [stderr] 96 | return IRational{numerator: n, denominator: d}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `IRational{numerator: n, denominator: d}` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:106:2 [INFO] [stderr] | [INFO] [stderr] 106 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:118:2 [INFO] [stderr] | [INFO] [stderr] 118 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:130:2 [INFO] [stderr] | [INFO] [stderr] 130 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:142:2 [INFO] [stderr] | [INFO] [stderr] 142 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:154:2 [INFO] [stderr] | [INFO] [stderr] 154 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:166:2 [INFO] [stderr] | [INFO] [stderr] 166 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:178:2 [INFO] [stderr] | [INFO] [stderr] 178 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:190:2 [INFO] [stderr] | [INFO] [stderr] 190 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:202:2 [INFO] [stderr] | [INFO] [stderr] 202 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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/types.rs:82:16 [INFO] [stderr] | [INFO] [stderr] 82 | UnknownToMe = 0x0000ffff, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_ffff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/types.rs:83:21 [INFO] [stderr] | [INFO] [stderr] 83 | ImageDescription = 0x0000010e, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_010e` [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/types.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | Make = 0x0000010f, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_010f` [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/types.rs:85:10 [INFO] [stderr] | [INFO] [stderr] 85 | Model = 0x00000110, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0110` [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/types.rs:86:16 [INFO] [stderr] | [INFO] [stderr] 86 | Orientation = 0x00000112, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0112` [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/types.rs:87:16 [INFO] [stderr] | [INFO] [stderr] 87 | XResolution = 0x0000011a, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_011a` [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/types.rs:88:16 [INFO] [stderr] | [INFO] [stderr] 88 | YResolution = 0x0000011b, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_011b` [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/types.rs:89:19 [INFO] [stderr] | [INFO] [stderr] 89 | ResolutionUnit = 0x00000128, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0128` [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/types.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | Software = 0x00000131, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0131` [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/types.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | DateTime = 0x00000132, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0132` [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/types.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | HostComputer = 0x0000013c, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_013c` [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/types.rs:93:15 [INFO] [stderr] | [INFO] [stderr] 93 | WhitePoint = 0x0000013e, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_013e` [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/types.rs:94:26 [INFO] [stderr] | [INFO] [stderr] 94 | PrimaryChromaticities = 0x0000013f, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_013f` [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/types.rs:95:22 [INFO] [stderr] | [INFO] [stderr] 95 | YCbCrCoefficients = 0x00000211, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0211` [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/types.rs:96:24 [INFO] [stderr] | [INFO] [stderr] 96 | ReferenceBlackWhite = 0x00000214, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0214` [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/types.rs:97:14 [INFO] [stderr] | [INFO] [stderr] 97 | Copyright = 0x00008298, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8298` [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/types.rs:98:15 [INFO] [stderr] | [INFO] [stderr] 98 | ExifOffset = 0x00008769, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8769` [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/types.rs:99:14 [INFO] [stderr] | [INFO] [stderr] 99 | GPSOffset = 0x00008825, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8825` [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/types.rs:101:17 [INFO] [stderr] | [INFO] [stderr] 101 | ExposureTime = 0x0000829a, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_829a` [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/types.rs:102:12 [INFO] [stderr] | [INFO] [stderr] 102 | FNumber = 0x0000829d, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_829d` [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/types.rs:103:20 [INFO] [stderr] | [INFO] [stderr] 103 | ExposureProgram = 0x00008822, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8822` [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/types.rs:104:24 [INFO] [stderr] | [INFO] [stderr] 104 | SpectralSensitivity = 0x00008824, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8824` [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/types.rs:105:20 [INFO] [stderr] | [INFO] [stderr] 105 | ISOSpeedRatings = 0x00008827, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8827` [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/types.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | OECF = 0x00008828, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8828` [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/types.rs:107:16 [INFO] [stderr] | [INFO] [stderr] 107 | ExifVersion = 0x00009000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9000` [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/types.rs:108:21 [INFO] [stderr] | [INFO] [stderr] 108 | DateTimeOriginal = 0x00009003, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9003` [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/types.rs:109:22 [INFO] [stderr] | [INFO] [stderr] 109 | DateTimeDigitized = 0x00009004, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9004` [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/types.rs:110:22 [INFO] [stderr] | [INFO] [stderr] 110 | ShutterSpeedValue = 0x00009201, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9201` [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/types.rs:111:18 [INFO] [stderr] | [INFO] [stderr] 111 | ApertureValue = 0x00009202, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9202` [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/types.rs:112:20 [INFO] [stderr] | [INFO] [stderr] 112 | BrightnessValue = 0x00009203, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9203` [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/types.rs:113:22 [INFO] [stderr] | [INFO] [stderr] 113 | ExposureBiasValue = 0x00009204, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9204` [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/types.rs:114:21 [INFO] [stderr] | [INFO] [stderr] 114 | MaxApertureValue = 0x00009205, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9205` [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/types.rs:115:20 [INFO] [stderr] | [INFO] [stderr] 115 | SubjectDistance = 0x00009206, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9206` [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/types.rs:116:17 [INFO] [stderr] | [INFO] [stderr] 116 | MeteringMode = 0x00009207, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9207` [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/types.rs:117:16 [INFO] [stderr] | [INFO] [stderr] 117 | LightSource = 0x00009208, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9208` [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/types.rs:118:10 [INFO] [stderr] | [INFO] [stderr] 118 | Flash = 0x00009209, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9209` [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/types.rs:119:16 [INFO] [stderr] | [INFO] [stderr] 119 | FocalLength = 0x0000920a, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_920a` [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/types.rs:120:16 [INFO] [stderr] | [INFO] [stderr] 120 | SubjectArea = 0x00009214, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9214` [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/types.rs:121:14 [INFO] [stderr] | [INFO] [stderr] 121 | MakerNote = 0x0000927c, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_927c` [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/types.rs:122:16 [INFO] [stderr] | [INFO] [stderr] 122 | UserComment = 0x00009286, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9286` [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/types.rs:123:20 [INFO] [stderr] | [INFO] [stderr] 123 | FlashPixVersion = 0x0000a000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a000` [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/types.rs:124:15 [INFO] [stderr] | [INFO] [stderr] 124 | ColorSpace = 0x0000a001, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a001` [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/types.rs:125:21 [INFO] [stderr] | [INFO] [stderr] 125 | RelatedSoundFile = 0x0000a004, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a004` [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/types.rs:126:16 [INFO] [stderr] | [INFO] [stderr] 126 | FlashEnergy = 0x0000a20b, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a20b` [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/types.rs:127:26 [INFO] [stderr] | [INFO] [stderr] 127 | FocalPlaneXResolution = 0x0000a20e, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a20e` [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/types.rs:128:26 [INFO] [stderr] | [INFO] [stderr] 128 | FocalPlaneYResolution = 0x0000a20f, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a20f` [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/types.rs:129:29 [INFO] [stderr] | [INFO] [stderr] 129 | FocalPlaneResolutionUnit = 0x0000a210, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a210` [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/types.rs:130:20 [INFO] [stderr] | [INFO] [stderr] 130 | SubjectLocation = 0x0000a214, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a214` [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/types.rs:131:18 [INFO] [stderr] | [INFO] [stderr] 131 | ExposureIndex = 0x0000a215, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a215` [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/types.rs:132:18 [INFO] [stderr] | [INFO] [stderr] 132 | SensingMethod = 0x0000a217, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a217` [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/types.rs:133:15 [INFO] [stderr] | [INFO] [stderr] 133 | FileSource = 0x0000a300, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a300` [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/types.rs:134:14 [INFO] [stderr] | [INFO] [stderr] 134 | SceneType = 0x0000a301, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a301` [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/types.rs:135:15 [INFO] [stderr] | [INFO] [stderr] 135 | CFAPattern = 0x0000a302, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a302` [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/types.rs:136:19 [INFO] [stderr] | [INFO] [stderr] 136 | CustomRendered = 0x0000a401, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a401` [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/types.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | ExposureMode = 0x0000a402, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a402` [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/types.rs:138:21 [INFO] [stderr] | [INFO] [stderr] 138 | WhiteBalanceMode = 0x0000a403, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a403` [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/types.rs:139:21 [INFO] [stderr] | [INFO] [stderr] 139 | DigitalZoomRatio = 0x0000a404, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a404` [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/types.rs:140:26 [INFO] [stderr] | [INFO] [stderr] 140 | FocalLengthIn35mmFilm = 0x0000a405, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a405` [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/types.rs:141:21 [INFO] [stderr] | [INFO] [stderr] 141 | SceneCaptureType = 0x0000a406, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a406` [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/types.rs:142:16 [INFO] [stderr] | [INFO] [stderr] 142 | GainControl = 0x0000a407, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a407` [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/types.rs:143:13 [INFO] [stderr] | [INFO] [stderr] 143 | Contrast = 0x0000a408, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a408` [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/types.rs:144:15 [INFO] [stderr] | [INFO] [stderr] 144 | Saturation = 0x0000a409, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a409` [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/types.rs:145:14 [INFO] [stderr] | [INFO] [stderr] 145 | Sharpness = 0x0000a40a, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a40a` [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/types.rs:146:29 [INFO] [stderr] | [INFO] [stderr] 146 | DeviceSettingDescription = 0x0000a40b, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a40b` [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/types.rs:147:25 [INFO] [stderr] | [INFO] [stderr] 147 | SubjectDistanceRange = 0x0000a40c, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a40c` [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/types.rs:148:18 [INFO] [stderr] | [INFO] [stderr] 148 | ImageUniqueID = 0x0000a420, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a420` [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/types.rs:149:22 [INFO] [stderr] | [INFO] [stderr] 149 | LensSpecification = 0x0000a432, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a432` [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/types.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | LensMake = 0x0000a433, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a433` [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/types.rs:151:14 [INFO] [stderr] | [INFO] [stderr] 151 | LensModel = 0x0000a434, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a434` [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/types.rs:169:23 [INFO] [stderr] | [INFO] [stderr] 169 | GPSImgDirectionRef = 0x000010, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0010` [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/types.rs:170:20 [INFO] [stderr] | [INFO] [stderr] 170 | GPSImgDirection = 0x000011, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/types.rs:171:16 [INFO] [stderr] | [INFO] [stderr] 171 | GPSMapDatum = 0x000012, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0012` [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/types.rs:172:23 [INFO] [stderr] | [INFO] [stderr] 172 | GPSDestLatitudeRef = 0x000013, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0013` [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/types.rs:173:20 [INFO] [stderr] | [INFO] [stderr] 173 | GPSDestLatitude = 0x000014, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0014` [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/types.rs:174:24 [INFO] [stderr] | [INFO] [stderr] 174 | GPSDestLongitudeRef = 0x000015, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0015` [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/types.rs:175:21 [INFO] [stderr] | [INFO] [stderr] 175 | GPSDestLongitude = 0x000016, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0016` [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/types.rs:176:22 [INFO] [stderr] | [INFO] [stderr] 176 | GPSDestBearingRef = 0x000017, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0017` [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/types.rs:177:19 [INFO] [stderr] | [INFO] [stderr] 177 | GPSDestBearing = 0x000018, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0018` [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/types.rs:178:23 [INFO] [stderr] | [INFO] [stderr] 178 | GPSDestDistanceRef = 0x000019, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0019` [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/types.rs:179:20 [INFO] [stderr] | [INFO] [stderr] 179 | GPSDestDistance = 0x00001a, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_001a` [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/types.rs:180:24 [INFO] [stderr] | [INFO] [stderr] 180 | GPSProcessingMethod = 0x00001b, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_001b` [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/types.rs:181:23 [INFO] [stderr] | [INFO] [stderr] 181 | GPSAreaInformation = 0x00001c, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_001c` [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/types.rs:182:17 [INFO] [stderr] | [INFO] [stderr] 182 | GPSDateStamp = 0x00001d, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_001d` [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/types.rs:183:20 [INFO] [stderr] | [INFO] [stderr] 183 | GPSDifferential = 0x00001e, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_001e` [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: unneeded return statement [INFO] [stderr] --> src/types_impl.rs:96:3 [INFO] [stderr] | [INFO] [stderr] 96 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/image.rs:35:2 [INFO] [stderr] | [INFO] [stderr] 35 | return ""; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `""` [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: unneeded return statement [INFO] [stderr] --> src/image.rs:85:2 [INFO] [stderr] | [INFO] [stderr] 85 | return Err(ExifError::JpegWithoutExif("Scan past EOF and no EXIF found".to_string())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ExifError::JpegWithoutExif("Scan past EOF and no EXIF found".to_string()))` [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: unneeded return statement [INFO] [stderr] --> src/ifdformat.rs:25:2 [INFO] [stderr] | [INFO] [stderr] 25 | return s; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `s` [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: unneeded return statement [INFO] [stderr] --> src/tiff.rs:65:2 [INFO] [stderr] | [INFO] [stderr] 65 | return e; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `e` [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: unneeded return statement [INFO] [stderr] --> src/tiff.rs:97:2 [INFO] [stderr] | [INFO] [stderr] 97 | return (entries, next_ifd); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(entries, next_ifd)` [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: unneeded return statement [INFO] [stderr] --> src/tiff.rs:131:2 [INFO] [stderr] | [INFO] [stderr] 131 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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: unneeded return statement [INFO] [stderr] --> src/tiff.rs:182:2 [INFO] [stderr] | [INFO] [stderr] 182 | return Ok(exif_entries); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(exif_entries)` [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: unneeded return statement [INFO] [stderr] --> src/tiff.rs:209:2 [INFO] [stderr] | [INFO] [stderr] 209 | return parse_ifds(le, offset, &contents); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `parse_ifds(le, offset, &contents)` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:38:2 [INFO] [stderr] | [INFO] [stderr] 38 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:53:2 [INFO] [stderr] | [INFO] [stderr] 53 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:66:2 [INFO] [stderr] | [INFO] [stderr] 66 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:84:2 [INFO] [stderr] | [INFO] [stderr] 84 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:106:2 [INFO] [stderr] | [INFO] [stderr] 106 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:118:2 [INFO] [stderr] | [INFO] [stderr] 118 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:141:2 [INFO] [stderr] | [INFO] [stderr] 141 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:153:2 [INFO] [stderr] | [INFO] [stderr] 153 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:165:2 [INFO] [stderr] | [INFO] [stderr] 165 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:177:2 [INFO] [stderr] | [INFO] [stderr] 177 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:195:2 [INFO] [stderr] | [INFO] [stderr] 195 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:217:2 [INFO] [stderr] | [INFO] [stderr] 217 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:234:2 [INFO] [stderr] | [INFO] [stderr] 234 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:254:2 [INFO] [stderr] | [INFO] [stderr] 254 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:266:2 [INFO] [stderr] | [INFO] [stderr] 266 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:286:2 [INFO] [stderr] | [INFO] [stderr] 286 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:298:2 [INFO] [stderr] | [INFO] [stderr] 298 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:316:2 [INFO] [stderr] | [INFO] [stderr] 316 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:328:2 [INFO] [stderr] | [INFO] [stderr] 328 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:343:2 [INFO] [stderr] | [INFO] [stderr] 343 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:360:2 [INFO] [stderr] | [INFO] [stderr] 360 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:378:2 [INFO] [stderr] | [INFO] [stderr] 378 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:396:2 [INFO] [stderr] | [INFO] [stderr] 396 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:411:2 [INFO] [stderr] | [INFO] [stderr] 411 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:425:2 [INFO] [stderr] | [INFO] [stderr] 425 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:475:2 [INFO] [stderr] | [INFO] [stderr] 475 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:536:2 [INFO] [stderr] | [INFO] [stderr] 536 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:569:2 [INFO] [stderr] | [INFO] [stderr] 569 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:605:2 [INFO] [stderr] | [INFO] [stderr] 605 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:622:2 [INFO] [stderr] | [INFO] [stderr] 622 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:712:2 [INFO] [stderr] | [INFO] [stderr] 712 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:730:2 [INFO] [stderr] | [INFO] [stderr] 730 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:748:2 [INFO] [stderr] | [INFO] [stderr] 748 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:768:2 [INFO] [stderr] | [INFO] [stderr] 768 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:786:2 [INFO] [stderr] | [INFO] [stderr] 786 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:805:2 [INFO] [stderr] | [INFO] [stderr] 805 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:821:2 [INFO] [stderr] | [INFO] [stderr] 821 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:838:2 [INFO] [stderr] | [INFO] [stderr] 838 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:860:2 [INFO] [stderr] | [INFO] [stderr] 860 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:877:2 [INFO] [stderr] | [INFO] [stderr] 877 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:896:2 [INFO] [stderr] | [INFO] [stderr] 896 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/exifreadable.rs:914:10 [INFO] [stderr] | [INFO] [stderr] 914 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 915 | | if a0 == a0 && a1 == a1 { [INFO] [stderr] 916 | | format!("{}-{} mm f/{:.1}-{:.1}", f0, f1, a0, a1) [INFO] [stderr] 917 | | } else { [INFO] [stderr] 918 | | format!("{}-{} mm f/unknown", f0, f1) [INFO] [stderr] 919 | | } [INFO] [stderr] 920 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 914 | } else if a0 == a0 && a1 == a1 { [INFO] [stderr] 915 | format!("{}-{} mm f/{:.1}-{:.1}", f0, f1, a0, a1) [INFO] [stderr] 916 | } else { [INFO] [stderr] 917 | format!("{}-{} mm f/unknown", f0, f1) [INFO] [stderr] 918 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded `()` [INFO] [stderr] --> src/exifpost.rs:83:17 [INFO] [stderr] | [INFO] [stderr] 83 | _ => return () [INFO] [stderr] | ^^ help: remove the `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:11:2 [INFO] [stderr] | [INFO] [stderr] 11 | return u as i8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `u as i8` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:31:2 [INFO] [stderr] | [INFO] [stderr] 31 | return u as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `u as i16` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:53:2 [INFO] [stderr] | [INFO] [stderr] 53 | return u as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `u as i32` [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/lowlevel.rs:50:10 [INFO] [stderr] | [INFO] [stderr] 50 | if u >= 0x80000000 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_0000` [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/lowlevel.rs:51:11 [INFO] [stderr] | [INFO] [stderr] 51 | u = u - 0x100000000; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0x0001_0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:67:2 [INFO] [stderr] | [INFO] [stderr] 67 | return f; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `f` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:80:2 [INFO] [stderr] | [INFO] [stderr] 80 | return f; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `f` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:88:2 [INFO] [stderr] | [INFO] [stderr] 88 | return URational{numerator: n, denominator: d}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `URational{numerator: n, denominator: d}` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:96:2 [INFO] [stderr] | [INFO] [stderr] 96 | return IRational{numerator: n, denominator: d}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `IRational{numerator: n, denominator: d}` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:106:2 [INFO] [stderr] | [INFO] [stderr] 106 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:118:2 [INFO] [stderr] | [INFO] [stderr] 118 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:130:2 [INFO] [stderr] | [INFO] [stderr] 130 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:142:2 [INFO] [stderr] | [INFO] [stderr] 142 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:154:2 [INFO] [stderr] | [INFO] [stderr] 154 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:166:2 [INFO] [stderr] | [INFO] [stderr] 166 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:178:2 [INFO] [stderr] | [INFO] [stderr] 178 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:190:2 [INFO] [stderr] | [INFO] [stderr] 190 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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: unneeded return statement [INFO] [stderr] --> src/lowlevel.rs:202:2 [INFO] [stderr] | [INFO] [stderr] 202 | return a; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `a` [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/types.rs:82:16 [INFO] [stderr] | [INFO] [stderr] 82 | UnknownToMe = 0x0000ffff, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_ffff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/types.rs:83:21 [INFO] [stderr] | [INFO] [stderr] 83 | ImageDescription = 0x0000010e, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_010e` [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/types.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | Make = 0x0000010f, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_010f` [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/types.rs:85:10 [INFO] [stderr] | [INFO] [stderr] 85 | Model = 0x00000110, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0110` [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/types.rs:86:16 [INFO] [stderr] | [INFO] [stderr] 86 | Orientation = 0x00000112, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0112` [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/types.rs:87:16 [INFO] [stderr] | [INFO] [stderr] 87 | XResolution = 0x0000011a, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_011a` [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/types.rs:88:16 [INFO] [stderr] | [INFO] [stderr] 88 | YResolution = 0x0000011b, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_011b` [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/types.rs:89:19 [INFO] [stderr] | [INFO] [stderr] 89 | ResolutionUnit = 0x00000128, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0128` [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/types.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | Software = 0x00000131, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0131` [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/types.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | DateTime = 0x00000132, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0132` [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/types.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | HostComputer = 0x0000013c, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_013c` [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/types.rs:93:15 [INFO] [stderr] | [INFO] [stderr] 93 | WhitePoint = 0x0000013e, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_013e` [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/types.rs:94:26 [INFO] [stderr] | [INFO] [stderr] 94 | PrimaryChromaticities = 0x0000013f, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_013f` [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/types.rs:95:22 [INFO] [stderr] | [INFO] [stderr] 95 | YCbCrCoefficients = 0x00000211, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0211` [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/types.rs:96:24 [INFO] [stderr] | [INFO] [stderr] 96 | ReferenceBlackWhite = 0x00000214, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0214` [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/types.rs:97:14 [INFO] [stderr] | [INFO] [stderr] 97 | Copyright = 0x00008298, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8298` [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/types.rs:98:15 [INFO] [stderr] | [INFO] [stderr] 98 | ExifOffset = 0x00008769, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8769` [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/types.rs:99:14 [INFO] [stderr] | [INFO] [stderr] 99 | GPSOffset = 0x00008825, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8825` [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/types.rs:101:17 [INFO] [stderr] | [INFO] [stderr] 101 | ExposureTime = 0x0000829a, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_829a` [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/types.rs:102:12 [INFO] [stderr] | [INFO] [stderr] 102 | FNumber = 0x0000829d, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_829d` [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/types.rs:103:20 [INFO] [stderr] | [INFO] [stderr] 103 | ExposureProgram = 0x00008822, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8822` [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/types.rs:104:24 [INFO] [stderr] | [INFO] [stderr] 104 | SpectralSensitivity = 0x00008824, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8824` [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/types.rs:105:20 [INFO] [stderr] | [INFO] [stderr] 105 | ISOSpeedRatings = 0x00008827, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8827` [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/types.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | OECF = 0x00008828, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8828` [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/types.rs:107:16 [INFO] [stderr] | [INFO] [stderr] 107 | ExifVersion = 0x00009000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9000` [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/types.rs:108:21 [INFO] [stderr] | [INFO] [stderr] 108 | DateTimeOriginal = 0x00009003, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9003` [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/types.rs:109:22 [INFO] [stderr] | [INFO] [stderr] 109 | DateTimeDigitized = 0x00009004, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9004` [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/types.rs:110:22 [INFO] [stderr] | [INFO] [stderr] 110 | ShutterSpeedValue = 0x00009201, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9201` [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/types.rs:111:18 [INFO] [stderr] | [INFO] [stderr] 111 | ApertureValue = 0x00009202, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9202` [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/types.rs:112:20 [INFO] [stderr] | [INFO] [stderr] 112 | BrightnessValue = 0x00009203, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9203` [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/types.rs:113:22 [INFO] [stderr] | [INFO] [stderr] 113 | ExposureBiasValue = 0x00009204, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9204` [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/types.rs:114:21 [INFO] [stderr] | [INFO] [stderr] 114 | MaxApertureValue = 0x00009205, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9205` [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/types.rs:115:20 [INFO] [stderr] | [INFO] [stderr] 115 | SubjectDistance = 0x00009206, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9206` [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/types.rs:116:17 [INFO] [stderr] | [INFO] [stderr] 116 | MeteringMode = 0x00009207, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9207` [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/types.rs:117:16 [INFO] [stderr] | [INFO] [stderr] 117 | LightSource = 0x00009208, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9208` [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/types.rs:118:10 [INFO] [stderr] | [INFO] [stderr] 118 | Flash = 0x00009209, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9209` [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/types.rs:119:16 [INFO] [stderr] | [INFO] [stderr] 119 | FocalLength = 0x0000920a, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_920a` [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/types.rs:120:16 [INFO] [stderr] | [INFO] [stderr] 120 | SubjectArea = 0x00009214, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9214` [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/types.rs:121:14 [INFO] [stderr] | [INFO] [stderr] 121 | MakerNote = 0x0000927c, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_927c` [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/types.rs:122:16 [INFO] [stderr] | [INFO] [stderr] 122 | UserComment = 0x00009286, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_9286` [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/types.rs:123:20 [INFO] [stderr] | [INFO] [stderr] 123 | FlashPixVersion = 0x0000a000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a000` [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/types.rs:124:15 [INFO] [stderr] | [INFO] [stderr] 124 | ColorSpace = 0x0000a001, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a001` [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/types.rs:125:21 [INFO] [stderr] | [INFO] [stderr] 125 | RelatedSoundFile = 0x0000a004, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a004` [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/types.rs:126:16 [INFO] [stderr] | [INFO] [stderr] 126 | FlashEnergy = 0x0000a20b, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a20b` [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/types.rs:127:26 [INFO] [stderr] | [INFO] [stderr] 127 | FocalPlaneXResolution = 0x0000a20e, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a20e` [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/types.rs:128:26 [INFO] [stderr] | [INFO] [stderr] 128 | FocalPlaneYResolution = 0x0000a20f, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a20f` [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/types.rs:129:29 [INFO] [stderr] | [INFO] [stderr] 129 | FocalPlaneResolutionUnit = 0x0000a210, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a210` [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/types.rs:130:20 [INFO] [stderr] | [INFO] [stderr] 130 | SubjectLocation = 0x0000a214, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a214` [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/types.rs:131:18 [INFO] [stderr] | [INFO] [stderr] 131 | ExposureIndex = 0x0000a215, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a215` [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/types.rs:132:18 [INFO] [stderr] | [INFO] [stderr] 132 | SensingMethod = 0x0000a217, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a217` [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/types.rs:133:15 [INFO] [stderr] | [INFO] [stderr] 133 | FileSource = 0x0000a300, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a300` [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/types.rs:134:14 [INFO] [stderr] | [INFO] [stderr] 134 | SceneType = 0x0000a301, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a301` [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/types.rs:135:15 [INFO] [stderr] | [INFO] [stderr] 135 | CFAPattern = 0x0000a302, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a302` [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/types.rs:136:19 [INFO] [stderr] | [INFO] [stderr] 136 | CustomRendered = 0x0000a401, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a401` [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/types.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | ExposureMode = 0x0000a402, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a402` [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/types.rs:138:21 [INFO] [stderr] | [INFO] [stderr] 138 | WhiteBalanceMode = 0x0000a403, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a403` [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/types.rs:139:21 [INFO] [stderr] | [INFO] [stderr] 139 | DigitalZoomRatio = 0x0000a404, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a404` [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/types.rs:140:26 [INFO] [stderr] | [INFO] [stderr] 140 | FocalLengthIn35mmFilm = 0x0000a405, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a405` [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/types.rs:141:21 [INFO] [stderr] | [INFO] [stderr] 141 | SceneCaptureType = 0x0000a406, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a406` [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/types.rs:142:16 [INFO] [stderr] | [INFO] [stderr] 142 | GainControl = 0x0000a407, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a407` [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/types.rs:143:13 [INFO] [stderr] | [INFO] [stderr] 143 | Contrast = 0x0000a408, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a408` [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/types.rs:144:15 [INFO] [stderr] | [INFO] [stderr] 144 | Saturation = 0x0000a409, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a409` [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/types.rs:145:14 [INFO] [stderr] | [INFO] [stderr] 145 | Sharpness = 0x0000a40a, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a40a` [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/types.rs:146:29 [INFO] [stderr] | [INFO] [stderr] 146 | DeviceSettingDescription = 0x0000a40b, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a40b` [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/types.rs:147:25 [INFO] [stderr] | [INFO] [stderr] 147 | SubjectDistanceRange = 0x0000a40c, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a40c` [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/types.rs:148:18 [INFO] [stderr] | [INFO] [stderr] 148 | ImageUniqueID = 0x0000a420, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a420` [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/types.rs:149:22 [INFO] [stderr] | [INFO] [stderr] 149 | LensSpecification = 0x0000a432, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a432` [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/types.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | LensMake = 0x0000a433, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a433` [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/types.rs:151:14 [INFO] [stderr] | [INFO] [stderr] 151 | LensModel = 0x0000a434, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_a434` [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/types.rs:169:23 [INFO] [stderr] | [INFO] [stderr] 169 | GPSImgDirectionRef = 0x000010, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0010` [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/types.rs:170:20 [INFO] [stderr] | [INFO] [stderr] 170 | GPSImgDirection = 0x000011, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/types.rs:171:16 [INFO] [stderr] | [INFO] [stderr] 171 | GPSMapDatum = 0x000012, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0012` [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/types.rs:172:23 [INFO] [stderr] | [INFO] [stderr] 172 | GPSDestLatitudeRef = 0x000013, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0013` [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/types.rs:173:20 [INFO] [stderr] | [INFO] [stderr] 173 | GPSDestLatitude = 0x000014, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0014` [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/types.rs:174:24 [INFO] [stderr] | [INFO] [stderr] 174 | GPSDestLongitudeRef = 0x000015, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0015` [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/types.rs:175:21 [INFO] [stderr] | [INFO] [stderr] 175 | GPSDestLongitude = 0x000016, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0016` [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/types.rs:176:22 [INFO] [stderr] | [INFO] [stderr] 176 | GPSDestBearingRef = 0x000017, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0017` [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/types.rs:177:19 [INFO] [stderr] | [INFO] [stderr] 177 | GPSDestBearing = 0x000018, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0018` [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/types.rs:178:23 [INFO] [stderr] | [INFO] [stderr] 178 | GPSDestDistanceRef = 0x000019, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_0019` [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/types.rs:179:20 [INFO] [stderr] | [INFO] [stderr] 179 | GPSDestDistance = 0x00001a, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_001a` [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/types.rs:180:24 [INFO] [stderr] | [INFO] [stderr] 180 | GPSProcessingMethod = 0x00001b, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_001b` [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/types.rs:181:23 [INFO] [stderr] | [INFO] [stderr] 181 | GPSAreaInformation = 0x00001c, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_001c` [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/types.rs:182:17 [INFO] [stderr] | [INFO] [stderr] 182 | GPSDateStamp = 0x00001d, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_001d` [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/types.rs:183:20 [INFO] [stderr] | [INFO] [stderr] 183 | GPSDifferential = 0x00001e, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_001e` [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: unneeded return statement [INFO] [stderr] --> src/types_impl.rs:96:3 [INFO] [stderr] | [INFO] [stderr] 96 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/image.rs:35:2 [INFO] [stderr] | [INFO] [stderr] 35 | return ""; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `""` [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: unneeded return statement [INFO] [stderr] --> src/image.rs:85:2 [INFO] [stderr] | [INFO] [stderr] 85 | return Err(ExifError::JpegWithoutExif("Scan past EOF and no EXIF found".to_string())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ExifError::JpegWithoutExif("Scan past EOF and no EXIF found".to_string()))` [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: unneeded return statement [INFO] [stderr] --> src/ifdformat.rs:25:2 [INFO] [stderr] | [INFO] [stderr] 25 | return s; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `s` [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: unneeded return statement [INFO] [stderr] --> src/tiff.rs:65:2 [INFO] [stderr] | [INFO] [stderr] 65 | return e; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `e` [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: unneeded return statement [INFO] [stderr] --> src/tiff.rs:97:2 [INFO] [stderr] | [INFO] [stderr] 97 | return (entries, next_ifd); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(entries, next_ifd)` [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: unneeded return statement [INFO] [stderr] --> src/tiff.rs:131:2 [INFO] [stderr] | [INFO] [stderr] 131 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [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: unneeded return statement [INFO] [stderr] --> src/tiff.rs:182:2 [INFO] [stderr] | [INFO] [stderr] 182 | return Ok(exif_entries); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(exif_entries)` [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: unneeded return statement [INFO] [stderr] --> src/tiff.rs:209:2 [INFO] [stderr] | [INFO] [stderr] 209 | return parse_ifds(le, offset, &contents); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `parse_ifds(le, offset, &contents)` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:38:2 [INFO] [stderr] | [INFO] [stderr] 38 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:53:2 [INFO] [stderr] | [INFO] [stderr] 53 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:66:2 [INFO] [stderr] | [INFO] [stderr] 66 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:84:2 [INFO] [stderr] | [INFO] [stderr] 84 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:106:2 [INFO] [stderr] | [INFO] [stderr] 106 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:118:2 [INFO] [stderr] | [INFO] [stderr] 118 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:141:2 [INFO] [stderr] | [INFO] [stderr] 141 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:153:2 [INFO] [stderr] | [INFO] [stderr] 153 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:165:2 [INFO] [stderr] | [INFO] [stderr] 165 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:177:2 [INFO] [stderr] | [INFO] [stderr] 177 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:195:2 [INFO] [stderr] | [INFO] [stderr] 195 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:217:2 [INFO] [stderr] | [INFO] [stderr] 217 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:234:2 [INFO] [stderr] | [INFO] [stderr] 234 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:254:2 [INFO] [stderr] | [INFO] [stderr] 254 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:266:2 [INFO] [stderr] | [INFO] [stderr] 266 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:286:2 [INFO] [stderr] | [INFO] [stderr] 286 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:298:2 [INFO] [stderr] | [INFO] [stderr] 298 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:316:2 [INFO] [stderr] | [INFO] [stderr] 316 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:328:2 [INFO] [stderr] | [INFO] [stderr] 328 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:343:2 [INFO] [stderr] | [INFO] [stderr] 343 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:360:2 [INFO] [stderr] | [INFO] [stderr] 360 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:378:2 [INFO] [stderr] | [INFO] [stderr] 378 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:396:2 [INFO] [stderr] | [INFO] [stderr] 396 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:411:2 [INFO] [stderr] | [INFO] [stderr] 411 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:425:2 [INFO] [stderr] | [INFO] [stderr] 425 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:475:2 [INFO] [stderr] | [INFO] [stderr] 475 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:536:2 [INFO] [stderr] | [INFO] [stderr] 536 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:569:2 [INFO] [stderr] | [INFO] [stderr] 569 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:605:2 [INFO] [stderr] | [INFO] [stderr] 605 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:622:2 [INFO] [stderr] | [INFO] [stderr] 622 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:712:2 [INFO] [stderr] | [INFO] [stderr] 712 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:730:2 [INFO] [stderr] | [INFO] [stderr] 730 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:748:2 [INFO] [stderr] | [INFO] [stderr] 748 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:768:2 [INFO] [stderr] | [INFO] [stderr] 768 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:786:2 [INFO] [stderr] | [INFO] [stderr] 786 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:805:2 [INFO] [stderr] | [INFO] [stderr] 805 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:821:2 [INFO] [stderr] | [INFO] [stderr] 821 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:838:2 [INFO] [stderr] | [INFO] [stderr] 838 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:860:2 [INFO] [stderr] | [INFO] [stderr] 860 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:877:2 [INFO] [stderr] | [INFO] [stderr] 877 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: unneeded return statement [INFO] [stderr] --> src/exifreadable.rs:896:2 [INFO] [stderr] | [INFO] [stderr] 896 | return s.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `s.to_string()` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/exifreadable.rs:914:10 [INFO] [stderr] | [INFO] [stderr] 914 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 915 | | if a0 == a0 && a1 == a1 { [INFO] [stderr] 916 | | format!("{}-{} mm f/{:.1}-{:.1}", f0, f1, a0, a1) [INFO] [stderr] 917 | | } else { [INFO] [stderr] 918 | | format!("{}-{} mm f/unknown", f0, f1) [INFO] [stderr] 919 | | } [INFO] [stderr] 920 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 914 | } else if a0 == a0 && a1 == a1 { [INFO] [stderr] 915 | format!("{}-{} mm f/{:.1}-{:.1}", f0, f1, a0, a1) [INFO] [stderr] 916 | } else { [INFO] [stderr] 917 | format!("{}-{} mm f/unknown", f0, f1) [INFO] [stderr] 918 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded `()` [INFO] [stderr] --> src/exifpost.rs:83:17 [INFO] [stderr] | [INFO] [stderr] 83 | _ => return () [INFO] [stderr] | ^^ help: remove the `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:7:14 [INFO] [stderr] | [INFO] [stderr] 7 | let mut u = raw as i16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i16::from(raw)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/lowlevel.rs:9:3 [INFO] [stderr] | [INFO] [stderr] 9 | u = u - 0x100; [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `u -= 0x100` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:18:3 [INFO] [stderr] | [INFO] [stderr] 18 | (raw[1] as u16) * 256 + raw[0] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(raw[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:18:27 [INFO] [stderr] | [INFO] [stderr] 18 | (raw[1] as u16) * 256 + raw[0] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(raw[0])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:20:3 [INFO] [stderr] | [INFO] [stderr] 20 | (raw[0] as u16) * 256 + raw[1] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(raw[0])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:20:27 [INFO] [stderr] | [INFO] [stderr] 20 | (raw[0] as u16) * 256 + raw[1] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(raw[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:27:14 [INFO] [stderr] | [INFO] [stderr] 27 | let mut u = read_u16(le, raw) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(read_u16(le, raw))` [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: manual implementation of an assign operation [INFO] [stderr] --> src/lowlevel.rs:29:3 [INFO] [stderr] | [INFO] [stderr] 29 | u = u - 0x10000; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `u -= 0x10000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:38:4 [INFO] [stderr] | [INFO] [stderr] 38 | ((raw[3] as u32) << 24) + ((raw[2] as u32) << 16) + [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(raw[3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:38:30 [INFO] [stderr] | [INFO] [stderr] 38 | ((raw[3] as u32) << 24) + ((raw[2] as u32) << 16) + [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(raw[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:39:4 [INFO] [stderr] | [INFO] [stderr] 39 | ((raw[1] as u32) << 8) + raw[0] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(raw[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:39:28 [INFO] [stderr] | [INFO] [stderr] 39 | ((raw[1] as u32) << 8) + raw[0] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(raw[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:41:4 [INFO] [stderr] | [INFO] [stderr] 41 | ((raw[0] as u32) << 24) + ((raw[1] as u32) << 16) + [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(raw[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:41:30 [INFO] [stderr] | [INFO] [stderr] 41 | ((raw[0] as u32) << 24) + ((raw[1] as u32) << 16) + [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(raw[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:42:4 [INFO] [stderr] | [INFO] [stderr] 42 | ((raw[2] as u32) << 8) + raw[3] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(raw[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:42:28 [INFO] [stderr] | [INFO] [stderr] 42 | ((raw[2] as u32) << 8) + raw[3] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(raw[3])` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:49:14 [INFO] [stderr] | [INFO] [stderr] 49 | let mut u = read_u32(le, raw) as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(read_u32(le, raw))` [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: manual implementation of an assign operation [INFO] [stderr] --> src/lowlevel.rs:51:3 [INFO] [stderr] | [INFO] [stderr] 51 | u = u - 0x100000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `u -= 0x100000000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/lowlevel.rs:61:11 [INFO] [stderr] | [INFO] [stderr] 61 | for i in 0..4 { [INFO] [stderr] | ^^^^ help: try replacing the loop by: `a[..4].clone_from_slice(&raw[..4])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/lowlevel.rs:74:11 [INFO] [stderr] | [INFO] [stderr] 74 | for i in 0..8 { [INFO] [stderr] | ^^^^ help: try replacing the loop by: `a[..8].clone_from_slice(&raw[..8])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:7:14 [INFO] [stderr] | [INFO] [stderr] 7 | let mut u = raw as i16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i16::from(raw)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/lowlevel.rs:9:3 [INFO] [stderr] | [INFO] [stderr] 9 | u = u - 0x100; [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `u -= 0x100` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:18:3 [INFO] [stderr] | [INFO] [stderr] 18 | (raw[1] as u16) * 256 + raw[0] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(raw[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:18:27 [INFO] [stderr] | [INFO] [stderr] 18 | (raw[1] as u16) * 256 + raw[0] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(raw[0])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:20:3 [INFO] [stderr] | [INFO] [stderr] 20 | (raw[0] as u16) * 256 + raw[1] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(raw[0])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:20:27 [INFO] [stderr] | [INFO] [stderr] 20 | (raw[0] as u16) * 256 + raw[1] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(raw[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:27:14 [INFO] [stderr] | [INFO] [stderr] 27 | let mut u = read_u16(le, raw) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(read_u16(le, raw))` [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: manual implementation of an assign operation [INFO] [stderr] --> src/lowlevel.rs:29:3 [INFO] [stderr] | [INFO] [stderr] 29 | u = u - 0x10000; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `u -= 0x10000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:38:4 [INFO] [stderr] | [INFO] [stderr] 38 | ((raw[3] as u32) << 24) + ((raw[2] as u32) << 16) + [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(raw[3])` [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rational.rs:13:15 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn value(&self) -> f64 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [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] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:38:30 [INFO] [stderr] | [INFO] [stderr] 38 | ((raw[3] as u32) << 24) + ((raw[2] as u32) << 16) + [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(raw[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/rational.rs:14:3 [INFO] [stderr] | [INFO] [stderr] 14 | (self.numerator as f64) / (self.denominator as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.numerator)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:39:4 [INFO] [stderr] | [INFO] [stderr] 39 | ((raw[1] as u32) << 8) + raw[0] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(raw[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/rational.rs:14:29 [INFO] [stderr] | [INFO] [stderr] 14 | (self.numerator as f64) / (self.denominator as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.denominator)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:39:28 [INFO] [stderr] | [INFO] [stderr] 39 | ((raw[1] as u32) << 8) + raw[0] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(raw[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:41:4 [INFO] [stderr] | [INFO] [stderr] 41 | ((raw[0] as u32) << 24) + ((raw[1] as u32) << 16) + [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(raw[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:41:30 [INFO] [stderr] | [INFO] [stderr] 41 | ((raw[0] as u32) << 24) + ((raw[1] as u32) << 16) + [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(raw[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:42:4 [INFO] [stderr] | [INFO] [stderr] 42 | ((raw[2] as u32) << 8) + raw[3] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(raw[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:42:28 [INFO] [stderr] | [INFO] [stderr] 42 | ((raw[2] as u32) << 8) + raw[3] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(raw[3])` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/lowlevel.rs:49:14 [INFO] [stderr] | [INFO] [stderr] 49 | let mut u = read_u32(le, raw) as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(read_u32(le, raw))` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rational.rs:33:15 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn value(&self) -> f64 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lowlevel.rs:51:3 [INFO] [stderr] | [INFO] [stderr] 51 | u = u - 0x100000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `u -= 0x100000000` [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/rational.rs:34:3 [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] 34 | (self.numerator as f64) / (self.denominator as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.numerator)` [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] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/rational.rs:34:29 [INFO] [stderr] | [INFO] [stderr] 34 | (self.numerator as f64) / (self.denominator as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.denominator)` [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: it looks like you're manually copying between slices [INFO] [stderr] --> src/lowlevel.rs:61:11 [INFO] [stderr] | [INFO] [stderr] 61 | for i in 0..4 { [INFO] [stderr] | ^^^^ help: try replacing the loop by: `a[..4].clone_from_slice(&raw[..4])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/lowlevel.rs:74:11 [INFO] [stderr] | [INFO] [stderr] 74 | for i in 0..8 { [INFO] [stderr] | ^^^^ help: try replacing the loop by: `a[..8].clone_from_slice(&raw[..8])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rational.rs:13:15 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn value(&self) -> f64 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/rational.rs:14:3 [INFO] [stderr] | [INFO] [stderr] 14 | (self.numerator as f64) / (self.denominator as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.numerator)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/rational.rs:14:29 [INFO] [stderr] | [INFO] [stderr] 14 | (self.numerator as f64) / (self.denominator as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.denominator)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rational.rs:33:15 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn value(&self) -> f64 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/rational.rs:34:3 [INFO] [stderr] | [INFO] [stderr] 34 | (self.numerator as f64) / (self.denominator as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.numerator)` [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/rational.rs:34:29 [INFO] [stderr] | [INFO] [stderr] 34 | (self.numerator as f64) / (self.denominator as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.denominator)` [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 character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:12:19 [INFO] [stderr] | [INFO] [stderr] 12 | contents[6] == ('J' as u8) && contents[7] == ('F' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'J' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:12:49 [INFO] [stderr] | [INFO] [stderr] 12 | contents[6] == ('J' as u8) && contents[7] == ('F' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'F' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:13:19 [INFO] [stderr] | [INFO] [stderr] 13 | contents[8] == ('I' as u8) && contents[9] == ('F' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'I' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:13:49 [INFO] [stderr] | [INFO] [stderr] 13 | contents[8] == ('I' as u8) && contents[9] == ('F' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'F' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:19:19 [INFO] [stderr] | [INFO] [stderr] 19 | contents[6] == ('E' as u8) && contents[7] == ('x' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'E' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:19:49 [INFO] [stderr] | [INFO] [stderr] 19 | contents[6] == ('E' as u8) && contents[7] == ('x' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'x' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:20:19 [INFO] [stderr] | [INFO] [stderr] 20 | contents[8] == ('i' as u8) && contents[9] == ('f' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'i' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:20:49 [INFO] [stderr] | [INFO] [stderr] 20 | contents[8] == ('i' as u8) && contents[9] == ('f' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'f' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:24:20 [INFO] [stderr] | [INFO] [stderr] 24 | if contents[0] == ('I' as u8) && contents[1] == ('I' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'I' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:24:50 [INFO] [stderr] | [INFO] [stderr] 24 | if contents[0] == ('I' as u8) && contents[1] == ('I' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'I' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | if contents[0] == ('M' as u8) && contents[1] == ('M' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'M' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:29:50 [INFO] [stderr] | [INFO] [stderr] 29 | if contents[0] == ('M' as u8) && contents[1] == ('M' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'M' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/image.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | let marker: u16 = (contents[offset] as u16) * 256 + (contents[offset + 1] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(contents[offset])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/image.rs:49:55 [INFO] [stderr] | [INFO] [stderr] 49 | let marker: u16 = (contents[offset] as u16) * 256 + (contents[offset + 1] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(contents[offset + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | != [('E' as u8), ('x' as u8), ('i' as u8), ('f' as u8), 0, 0] { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'E' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:71:22 [INFO] [stderr] | [INFO] [stderr] 71 | != [('E' as u8), ('x' as u8), ('i' as u8), ('f' as u8), 0, 0] { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'x' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:71:35 [INFO] [stderr] | [INFO] [stderr] 71 | != [('E' as u8), ('x' as u8), ('i' as u8), ('f' as u8), 0, 0] { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'i' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:71:48 [INFO] [stderr] | [INFO] [stderr] 71 | != [('E' as u8), ('x' as u8), ('i' as u8), ('f' as u8), 0, 0] { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'f' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/ifdformat.rs:6:48 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn numarray_to_string(numbers: &Vec) -> String [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/ifdformat.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | if numbers.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `numbers.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/ifdformat.rs:18:4 [INFO] [stderr] | [INFO] [stderr] 18 | s = s + ", "; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `s += ", "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `f.count as usize` [INFO] [stderr] --> src/ifdformat.rs:60:22 [INFO] [stderr] | [INFO] [stderr] 60 | if f.data.len() < (f.count as usize * 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `f.count as usize` [INFO] [stderr] --> src/ifdformat.rs:68:22 [INFO] [stderr] | [INFO] [stderr] 68 | if f.data.len() < (f.count as usize * 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/tiff.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | if (((tag as u32) & 0xffff) as u16) != f.tag || [INFO] [stderr] | ________^ [INFO] [stderr] 39 | | (min_count == -1 && (format != IfdFormat::Ascii && [INFO] [stderr] 40 | | format != IfdFormat::Undefined && [INFO] [stderr] 41 | | format != IfdFormat::Unknown)) || [INFO] [stderr] 42 | | (min_count != -1 && format == IfdFormat::Ascii) { [INFO] [stderr] | |_______________________________________________________^ help: try: `(((tag as u32) & 0xffff) as u16) != f.tag || min_count == -1 && format != IfdFormat::Ascii && format != IfdFormat::Undefined && format != IfdFormat::Unknown || min_count != -1 && format == IfdFormat::Ascii` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/tiff.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | let next_ifd = match subifd { [INFO] [stderr] | ____________________^ [INFO] [stderr] 93 | | true => 0, [INFO] [stderr] 94 | | false => read_u32(le, &contents[count as usize * 12..]) as usize [INFO] [stderr] 95 | | }; [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if subifd { 0 } else { read_u32(le, &contents[count as usize * 12..]) as usize }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/tiff.rs:192:27 [INFO] [stderr] | [INFO] [stderr] 192 | } else if contents[0] == ('I' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'I' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/tiff.rs:193:19 [INFO] [stderr] | [INFO] [stderr] 193 | contents[1] == ('I' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'I' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/tiff.rs:197:27 [INFO] [stderr] | [INFO] [stderr] 197 | } else if contents[0] == ('M' as u8) && contents[1] == ('M' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'M' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/tiff.rs:197:57 [INFO] [stderr] | [INFO] [stderr] 197 | } else if contents[0] == ('M' as u8) && contents[1] == ('M' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'M' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:12:19 [INFO] [stderr] | [INFO] [stderr] 12 | contents[6] == ('J' as u8) && contents[7] == ('F' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] | [INFO] [stderr] --> src/exifreadable.rs:23:10 [INFO] [stderr] | [INFO] [stderr] 23 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 24 | | &TagValue::U16(ref v) => { [INFO] [stderr] 25 | | let n = v[0]; [INFO] [stderr] 26 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 35 | | _ => panic!(INV), [INFO] [stderr] 36 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'J' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:12:49 [INFO] [stderr] | [INFO] [stderr] 12 | contents[6] == ('J' as u8) && contents[7] == ('F' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'F' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 23 | let s = match *e { [INFO] [stderr] 24 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:13:19 [INFO] [stderr] | [INFO] [stderr] 13 | contents[8] == ('I' as u8) && contents[9] == ('F' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'I' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:13:49 [INFO] [stderr] | [INFO] [stderr] 13 | contents[8] == ('I' as u8) && contents[9] == ('F' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'F' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:19:19 [INFO] [stderr] | [INFO] [stderr] 19 | contents[6] == ('E' as u8) && contents[7] == ('x' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'E' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:19:49 [INFO] [stderr] | [INFO] [stderr] 19 | contents[6] == ('E' as u8) && contents[7] == ('x' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'x' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:20:19 [INFO] [stderr] | [INFO] [stderr] 20 | contents[8] == ('i' as u8) && contents[9] == ('f' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'i' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:20:49 [INFO] [stderr] | [INFO] [stderr] 20 | contents[8] == ('i' as u8) && contents[9] == ('f' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'f' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:24:20 [INFO] [stderr] | [INFO] [stderr] 24 | if contents[0] == ('I' as u8) && contents[1] == ('I' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'I' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:24:50 [INFO] [stderr] | [INFO] [stderr] 24 | if contents[0] == ('I' as u8) && contents[1] == ('I' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'I' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | if contents[0] == ('M' as u8) && contents[1] == ('M' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'M' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:29:50 [INFO] [stderr] | [INFO] [stderr] 29 | if contents[0] == ('M' as u8) && contents[1] == ('M' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'M' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:43:10 [INFO] [stderr] | [INFO] [stderr] 43 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 44 | | &TagValue::URational(ref v) => { [INFO] [stderr] 45 | | format!("{}", v[0].value()) [INFO] [stderr] 46 | | }, [INFO] [stderr] ... | [INFO] [stderr] 50 | | _ => panic!(INV), [INFO] [stderr] 51 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 43 | let s = match *e { [INFO] [stderr] 44 | TagValue::URational(ref v) => { [INFO] [stderr] 45 | format!("{}", v[0].value()) [INFO] [stderr] 46 | }, [INFO] [stderr] 47 | TagValue::IRational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:58:10 [INFO] [stderr] | [INFO] [stderr] 58 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 59 | | &TagValue::URational(ref v) => { [INFO] [stderr] 60 | | let ve: Vec = v.iter().map(|&x| x.value()).collect(); [INFO] [stderr] 61 | | numarray_to_string(&ve) [INFO] [stderr] 62 | | }, [INFO] [stderr] 63 | | _ => panic!(INV), [INFO] [stderr] 64 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 58 | let s = match *e { [INFO] [stderr] 59 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/image.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | let marker: u16 = (contents[offset] as u16) * 256 + (contents[offset + 1] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(contents[offset])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/image.rs:49:55 [INFO] [stderr] | [INFO] [stderr] 49 | let marker: u16 = (contents[offset] as u16) * 256 + (contents[offset + 1] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(contents[offset + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:71:10 [INFO] [stderr] | [INFO] [stderr] 71 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 72 | | &TagValue::U16(ref v) => { [INFO] [stderr] 73 | | let n = v[0]; [INFO] [stderr] 74 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 81 | | _ => panic!(INV), [INFO] [stderr] 82 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 71 | let s = match *e { [INFO] [stderr] 72 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | != [('E' as u8), ('x' as u8), ('i' as u8), ('f' as u8), 0, 0] { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'E' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:71:22 [INFO] [stderr] | [INFO] [stderr] 71 | != [('E' as u8), ('x' as u8), ('i' as u8), ('f' as u8), 0, 0] { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'x' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:71:35 [INFO] [stderr] | [INFO] [stderr] 71 | != [('E' as u8), ('x' as u8), ('i' as u8), ('f' as u8), 0, 0] { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'i' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/image.rs:71:48 [INFO] [stderr] | [INFO] [stderr] 71 | != [('E' as u8), ('x' as u8), ('i' as u8), ('f' as u8), 0, 0] { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'f' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:89:10 [INFO] [stderr] | [INFO] [stderr] 89 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 90 | | &TagValue::URational(ref v) => { [INFO] [stderr] 91 | | let r = v[0]; [INFO] [stderr] 92 | | if r.numerator == 1 && r.denominator > 1 { [INFO] [stderr] ... | [INFO] [stderr] 103 | | _ => panic!(INV), [INFO] [stderr] 104 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 89 | let s = match *e { [INFO] [stderr] 90 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/ifdformat.rs:6:48 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn numarray_to_string(numbers: &Vec) -> String [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:111:10 [INFO] [stderr] | [INFO] [stderr] 111 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 112 | | &TagValue::URational(ref v) => { [INFO] [stderr] 113 | | format!("f/{:.1}", v[0].value()) [INFO] [stderr] 114 | | }, [INFO] [stderr] 115 | | _ => panic!(INV), [INFO] [stderr] 116 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 111 | let s = match *e { [INFO] [stderr] 112 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/ifdformat.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | if numbers.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `numbers.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:123:10 [INFO] [stderr] | [INFO] [stderr] 123 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 124 | | &TagValue::U16(ref v) => { [INFO] [stderr] 125 | | let n = v[0]; [INFO] [stderr] 126 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 138 | | _ => panic!(INV), [INFO] [stderr] 139 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 123 | let s = match *e { [INFO] [stderr] 124 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/ifdformat.rs:18:4 [INFO] [stderr] | [INFO] [stderr] 18 | s = s + ", "; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `s += ", "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:146:10 [INFO] [stderr] | [INFO] [stderr] 146 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 147 | | &TagValue::URational(ref v) => { [INFO] [stderr] 148 | | format!("{} mm", v[0].value()) [INFO] [stderr] 149 | | }, [INFO] [stderr] 150 | | _ => panic!(INV), [INFO] [stderr] 151 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 146 | let s = match *e { [INFO] [stderr] 147 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:158:10 [INFO] [stderr] | [INFO] [stderr] 158 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 159 | | &TagValue::U16(ref v) => { [INFO] [stderr] 160 | | format!("{} mm", v[0]) [INFO] [stderr] 161 | | }, [INFO] [stderr] 162 | | _ => panic!(INV), [INFO] [stderr] 163 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 158 | let s = match *e { [INFO] [stderr] 159 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:170:10 [INFO] [stderr] | [INFO] [stderr] 170 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 171 | | &TagValue::URational(ref v) => { [INFO] [stderr] 172 | | format!("{:.1} m", v[0].value()) [INFO] [stderr] 173 | | }, [INFO] [stderr] 174 | | _ => panic!(INV), [INFO] [stderr] 175 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 170 | let s = match *e { [INFO] [stderr] 171 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:182:10 [INFO] [stderr] | [INFO] [stderr] 182 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 183 | | &TagValue::U16(ref v) => { [INFO] [stderr] 184 | | if v.len() == 1 { [INFO] [stderr] 185 | | format!("ISO {}", v[0]) [INFO] [stderr] ... | [INFO] [stderr] 192 | | _ => panic!(INV), [INFO] [stderr] 193 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 182 | let s = match *e { [INFO] [stderr] 183 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `f.count as usize` [INFO] [stderr] --> src/ifdformat.rs:60:22 [INFO] [stderr] | [INFO] [stderr] 60 | if f.data.len() < (f.count as usize * 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `f.count as usize` [INFO] [stderr] --> src/ifdformat.rs:68:22 [INFO] [stderr] | [INFO] [stderr] 68 | if f.data.len() < (f.count as usize * 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:200:10 [INFO] [stderr] | [INFO] [stderr] 200 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 201 | | &TagValue::URational(ref v) => { [INFO] [stderr] 202 | | let deg = v[0]; [INFO] [stderr] 203 | | let min = v[1]; [INFO] [stderr] ... | [INFO] [stderr] 214 | | _ => panic!(INV), [INFO] [stderr] 215 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 200 | let s = match *e { [INFO] [stderr] 201 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:222:10 [INFO] [stderr] | [INFO] [stderr] 222 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 223 | | &TagValue::U8(ref v) => { [INFO] [stderr] 224 | | let n = v[0]; [INFO] [stderr] 225 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 231 | | _ => panic!(INV), [INFO] [stderr] 232 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 222 | let s = match *e { [INFO] [stderr] 223 | TagValue::U8(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/tiff.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | if (((tag as u32) & 0xffff) as u16) != f.tag || [INFO] [stderr] | ________^ [INFO] [stderr] 39 | | (min_count == -1 && (format != IfdFormat::Ascii && [INFO] [stderr] 40 | | format != IfdFormat::Undefined && [INFO] [stderr] 41 | | format != IfdFormat::Unknown)) || [INFO] [stderr] 42 | | (min_count != -1 && format == IfdFormat::Ascii) { [INFO] [stderr] | |_______________________________________________________^ help: try: `(((tag as u32) & 0xffff) as u16) != f.tag || min_count == -1 && format != IfdFormat::Ascii && format != IfdFormat::Undefined && format != IfdFormat::Unknown || min_count != -1 && format == IfdFormat::Ascii` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:239:10 [INFO] [stderr] | [INFO] [stderr] 239 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 240 | | &TagValue::Ascii(ref v) => { [INFO] [stderr] 241 | | if v == "N" { [INFO] [stderr] 242 | | "kn" [INFO] [stderr] ... | [INFO] [stderr] 251 | | _ => panic!(INV), [INFO] [stderr] 252 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 239 | let s = match *e { [INFO] [stderr] 240 | TagValue::Ascii(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:259:10 [INFO] [stderr] | [INFO] [stderr] 259 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 260 | | &TagValue::URational(ref v) => { [INFO] [stderr] 261 | | format!("{:.3}", v[0].value()) [INFO] [stderr] 262 | | }, [INFO] [stderr] 263 | | _ => panic!(INV), [INFO] [stderr] 264 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 259 | let s = match *e { [INFO] [stderr] 260 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:271:10 [INFO] [stderr] | [INFO] [stderr] 271 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 272 | | &TagValue::Ascii(ref v) => { [INFO] [stderr] 273 | | if v == "N" { [INFO] [stderr] 274 | | "kn" [INFO] [stderr] ... | [INFO] [stderr] 283 | | _ => panic!(INV), [INFO] [stderr] 284 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 271 | let s = match *e { [INFO] [stderr] 272 | TagValue::Ascii(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:291:10 [INFO] [stderr] | [INFO] [stderr] 291 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 292 | | &TagValue::URational(ref v) => { [INFO] [stderr] 293 | | format!("{:.1}", v[0].value()) [INFO] [stderr] 294 | | }, [INFO] [stderr] 295 | | _ => panic!(INV), [INFO] [stderr] 296 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 291 | let s = match *e { [INFO] [stderr] 292 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:303:10 [INFO] [stderr] | [INFO] [stderr] 303 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 304 | | &TagValue::Ascii(ref v) => { [INFO] [stderr] 305 | | if v == "T" { [INFO] [stderr] 306 | | "True bearing" [INFO] [stderr] ... | [INFO] [stderr] 313 | | _ => panic!(INV), [INFO] [stderr] 314 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 303 | let s = match *e { [INFO] [stderr] 304 | TagValue::Ascii(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:321:10 [INFO] [stderr] | [INFO] [stderr] 321 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 322 | | &TagValue::URational(ref v) => { [INFO] [stderr] 323 | | format!("{:.2}°", v[0].value()) [INFO] [stderr] 324 | | }, [INFO] [stderr] 325 | | _ => panic!(INV), [INFO] [stderr] 326 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 321 | let s = match *e { [INFO] [stderr] 322 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:333:10 [INFO] [stderr] | [INFO] [stderr] 333 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 334 | | &TagValue::URational(ref v) => { [INFO] [stderr] 335 | | let hour = v[0]; [INFO] [stderr] 336 | | let min = v[1]; [INFO] [stderr] ... | [INFO] [stderr] 340 | | _ => panic!(INV), [INFO] [stderr] 341 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 333 | let s = match *e { [INFO] [stderr] 334 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:348:10 [INFO] [stderr] | [INFO] [stderr] 348 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 349 | | &TagValue::U16(ref v) => { [INFO] [stderr] 350 | | let n = v[0]; [INFO] [stderr] 351 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 357 | | _ => panic!(INV), [INFO] [stderr] 358 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 348 | let s = match *e { [INFO] [stderr] 349 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:365:10 [INFO] [stderr] | [INFO] [stderr] 365 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 366 | | &TagValue::Ascii(ref v) => { [INFO] [stderr] 367 | | if v == "A" { [INFO] [stderr] 368 | | "Measurement in progress" [INFO] [stderr] ... | [INFO] [stderr] 375 | | _ => panic!(INV), [INFO] [stderr] 376 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 365 | let s = match *e { [INFO] [stderr] 366 | TagValue::Ascii(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:383:10 [INFO] [stderr] | [INFO] [stderr] 383 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 384 | | &TagValue::Ascii(ref v) => { [INFO] [stderr] 385 | | if v == "2" { [INFO] [stderr] 386 | | "2-dimension" [INFO] [stderr] ... | [INFO] [stderr] 393 | | _ => panic!(INV), [INFO] [stderr] 394 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 383 | let s = match *e { [INFO] [stderr] 384 | TagValue::Ascii(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:404:10 [INFO] [stderr] | [INFO] [stderr] 404 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 405 | | &TagValue::Undefined(ref v, _) => { [INFO] [stderr] 406 | | String::from_utf8_lossy(&v[..]) [INFO] [stderr] 407 | | }, [INFO] [stderr] 408 | | _ => panic!(INV), [INFO] [stderr] 409 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 404 | let s = match *e { [INFO] [stderr] 405 | TagValue::Undefined(ref v, _) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:418:10 [INFO] [stderr] | [INFO] [stderr] 418 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 419 | | &TagValue::Undefined(ref v, _) => { [INFO] [stderr] 420 | | numarray_to_string(v) [INFO] [stderr] 421 | | }, [INFO] [stderr] 422 | | _ => panic!(INV), [INFO] [stderr] 423 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 418 | let s = match *e { [INFO] [stderr] 419 | TagValue::Undefined(ref v, _) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/tiff.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | let next_ifd = match subifd { [INFO] [stderr] | ____________________^ [INFO] [stderr] 93 | | true => 0, [INFO] [stderr] 94 | | false => read_u32(le, &contents[count as usize * 12..]) as usize [INFO] [stderr] 95 | | }; [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if subifd { 0 } else { read_u32(le, &contents[count as usize * 12..]) as usize }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:440:2 [INFO] [stderr] | [INFO] [stderr] 440 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 441 | | &TagValue::Undefined(ref v, le) => { [INFO] [stderr] 442 | | if v.len() < 8 { [INFO] [stderr] 443 | | format!("String w/ truncated preamble {}", numarray_to_string(v)) [INFO] [stderr] ... | [INFO] [stderr] 461 | | _ => panic!(INV), [INFO] [stderr] 462 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 440 | match *e { [INFO] [stderr] 441 | TagValue::Undefined(ref v, le) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/exifreadable.rs:449:22 [INFO] [stderr] | [INFO] [stderr] 449 | let v8: Vec = v[8..].iter().map(|&x| x).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `v[8..].iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:468:10 [INFO] [stderr] | [INFO] [stderr] 468 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 469 | | &TagValue::Undefined(ref v, _) => { [INFO] [stderr] 470 | | format!("Blob of {} bytes", v.len()) [INFO] [stderr] 471 | | }, [INFO] [stderr] 472 | | _ => panic!(INV), [INFO] [stderr] 473 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 468 | let s = match *e { [INFO] [stderr] 469 | TagValue::Undefined(ref v, _) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:480:2 [INFO] [stderr] | [INFO] [stderr] 480 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 481 | | &TagValue::IRational(ref v) => { [INFO] [stderr] 482 | | format!("{:.1} Tv APEX", v[0].value()) [INFO] [stderr] 483 | | }, [INFO] [stderr] 484 | | _ => panic!(INV), [INFO] [stderr] 485 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 480 | match *e { [INFO] [stderr] 481 | TagValue::IRational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:490:2 [INFO] [stderr] | [INFO] [stderr] 490 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 491 | | &TagValue::URational(ref v) => { [INFO] [stderr] 492 | | format!("{:.1} Av APEX", v[0].value()) [INFO] [stderr] 493 | | }, [INFO] [stderr] 494 | | _ => panic!(INV), [INFO] [stderr] 495 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 490 | match *e { [INFO] [stderr] 491 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/tiff.rs:192:27 [INFO] [stderr] | [INFO] [stderr] 192 | } else if contents[0] == ('I' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'I' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/tiff.rs:193:19 [INFO] [stderr] | [INFO] [stderr] 193 | contents[1] == ('I' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'I' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/tiff.rs:197:27 [INFO] [stderr] | [INFO] [stderr] 197 | } else if contents[0] == ('M' as u8) && contents[1] == ('M' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'M' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/tiff.rs:197:57 [INFO] [stderr] | [INFO] [stderr] 197 | } else if contents[0] == ('M' as u8) && contents[1] == ('M' as u8) && [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'M' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:500:2 [INFO] [stderr] | [INFO] [stderr] 500 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 501 | | &TagValue::IRational(ref v) => { [INFO] [stderr] 502 | | // numerator 0xffffffff = unknown [INFO] [stderr] 503 | | if v[0].numerator == -1 { [INFO] [stderr] ... | [INFO] [stderr] 509 | | _ => panic!(INV), [INFO] [stderr] 510 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 500 | match *e { [INFO] [stderr] 501 | TagValue::IRational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:515:2 [INFO] [stderr] | [INFO] [stderr] 515 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 516 | | &TagValue::IRational(ref v) => { [INFO] [stderr] 517 | | format!("{:.2} EV APEX", v[0].value()) [INFO] [stderr] 518 | | }, [INFO] [stderr] 519 | | _ => panic!(INV), [INFO] [stderr] 520 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 515 | match *e { [INFO] [stderr] 516 | TagValue::IRational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:525:10 [INFO] [stderr] | [INFO] [stderr] 525 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 526 | | &TagValue::Undefined(ref v, _) => { [INFO] [stderr] 527 | | if v.len() > 0 && v[0] == 3 { [INFO] [stderr] 528 | | "DSC" [INFO] [stderr] ... | [INFO] [stderr] 533 | | _ => panic!(INV), [INFO] [stderr] 534 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 525 | let s = match *e { [INFO] [stderr] 526 | TagValue::Undefined(ref v, _) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/exifreadable.rs:527:6 [INFO] [stderr] | [INFO] [stderr] 527 | if v.len() > 0 && v[0] == 3 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!v.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:541:2 [INFO] [stderr] | [INFO] [stderr] 541 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 542 | | &TagValue::URational(ref v) => { [INFO] [stderr] 543 | | format!("{} BCPS", v[0].value()) [INFO] [stderr] 544 | | }, [INFO] [stderr] 545 | | _ => panic!(INV), [INFO] [stderr] 546 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 541 | match *e { [INFO] [stderr] 542 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:551:10 [INFO] [stderr] | [INFO] [stderr] 551 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 552 | | &TagValue::U16(ref v) => { [INFO] [stderr] 553 | | let n = v[0]; [INFO] [stderr] 554 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 566 | | _ => panic!(INV), [INFO] [stderr] 567 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 551 | let s = match *e { [INFO] [stderr] 552 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:23:10 [INFO] [stderr] | [INFO] [stderr] 23 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 24 | | &TagValue::U16(ref v) => { [INFO] [stderr] 25 | | let n = v[0]; [INFO] [stderr] 26 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 35 | | _ => panic!(INV), [INFO] [stderr] 36 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:574:10 [INFO] [stderr] | [INFO] [stderr] 574 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 575 | | &TagValue::U16(ref v) => { [INFO] [stderr] 576 | | let n = v[0]; [INFO] [stderr] 577 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 602 | | _ => panic!(INV), [INFO] [stderr] 603 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 23 | let s = match *e { [INFO] [stderr] 24 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 574 | let s = match *e { [INFO] [stderr] 575 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:610:10 [INFO] [stderr] | [INFO] [stderr] 610 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 611 | | &TagValue::U16(ref v) => { [INFO] [stderr] 612 | | let n = v[0]; [INFO] [stderr] 613 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 619 | | _ => panic!(INV), [INFO] [stderr] 620 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 610 | let s = match *e { [INFO] [stderr] 611 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:43:10 [INFO] [stderr] | [INFO] [stderr] 43 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 44 | | &TagValue::URational(ref v) => { [INFO] [stderr] 45 | | format!("{}", v[0].value()) [INFO] [stderr] 46 | | }, [INFO] [stderr] ... | [INFO] [stderr] 50 | | _ => panic!(INV), [INFO] [stderr] 51 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 43 | let s = match *e { [INFO] [stderr] 44 | TagValue::URational(ref v) => { [INFO] [stderr] 45 | format!("{}", v[0].value()) [INFO] [stderr] 46 | }, [INFO] [stderr] 47 | TagValue::IRational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:627:2 [INFO] [stderr] | [INFO] [stderr] 627 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 628 | | &TagValue::U16(ref v) => { [INFO] [stderr] 629 | | let n = v[0]; [INFO] [stderr] 630 | | let mut b0 = "Did not fire. "; [INFO] [stderr] ... | [INFO] [stderr] 668 | | _ => panic!(INV), [INFO] [stderr] 669 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 627 | match *e { [INFO] [stderr] 628 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:58:10 [INFO] [stderr] | [INFO] [stderr] 58 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 59 | | &TagValue::URational(ref v) => { [INFO] [stderr] 60 | | let ve: Vec = v.iter().map(|&x| x.value()).collect(); [INFO] [stderr] 61 | | numarray_to_string(&ve) [INFO] [stderr] 62 | | }, [INFO] [stderr] 63 | | _ => panic!(INV), [INFO] [stderr] 64 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 58 | let s = match *e { [INFO] [stderr] 59 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/exifreadable.rs:636:12 [INFO] [stderr] | [INFO] [stderr] 636 | return format!("Does not have a flash."); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Does not have a flash.".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:71:10 [INFO] [stderr] | [INFO] [stderr] 71 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 72 | | &TagValue::U16(ref v) => { [INFO] [stderr] 73 | | let n = v[0]; [INFO] [stderr] 74 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 81 | | _ => panic!(INV), [INFO] [stderr] 82 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 71 | let s = match *e { [INFO] [stderr] 72 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:89:10 [INFO] [stderr] | [INFO] [stderr] 89 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 90 | | &TagValue::URational(ref v) => { [INFO] [stderr] 91 | | let r = v[0]; [INFO] [stderr] 92 | | if r.numerator == 1 && r.denominator > 1 { [INFO] [stderr] ... | [INFO] [stderr] 103 | | _ => panic!(INV), [INFO] [stderr] 104 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 89 | let s = match *e { [INFO] [stderr] 90 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:674:2 [INFO] [stderr] | [INFO] [stderr] 674 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 675 | | &TagValue::U16(ref v) => { [INFO] [stderr] 676 | | match v.len() { [INFO] [stderr] 677 | | 2 => format!("at pixel {},{}", v[0], v[1]), [INFO] [stderr] ... | [INFO] [stderr] 683 | | _ => panic!(INV), [INFO] [stderr] 684 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 674 | match *e { [INFO] [stderr] 675 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:111:10 [INFO] [stderr] | [INFO] [stderr] 111 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 112 | | &TagValue::URational(ref v) => { [INFO] [stderr] 113 | | format!("f/{:.1}", v[0].value()) [INFO] [stderr] 114 | | }, [INFO] [stderr] 115 | | _ => panic!(INV), [INFO] [stderr] 116 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 111 | let s = match *e { [INFO] [stderr] 112 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:689:2 [INFO] [stderr] | [INFO] [stderr] 689 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 690 | | &TagValue::U16(ref v) => { [INFO] [stderr] 691 | | format!("at pixel {},{}", v[0], v[1]) [INFO] [stderr] 692 | | }, [INFO] [stderr] 693 | | _ => panic!(INV), [INFO] [stderr] 694 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 689 | match *e { [INFO] [stderr] 690 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:699:10 [INFO] [stderr] | [INFO] [stderr] 699 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 700 | | &TagValue::U16(ref v) => { [INFO] [stderr] 701 | | let n = v[0]; [INFO] [stderr] 702 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 709 | | _ => panic!(INV), [INFO] [stderr] 710 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 699 | let s = match *e { [INFO] [stderr] 700 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:123:10 [INFO] [stderr] | [INFO] [stderr] 123 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 124 | | &TagValue::U16(ref v) => { [INFO] [stderr] 125 | | let n = v[0]; [INFO] [stderr] 126 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 138 | | _ => panic!(INV), [INFO] [stderr] 139 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 123 | let s = match *e { [INFO] [stderr] 124 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:717:10 [INFO] [stderr] | [INFO] [stderr] 717 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 718 | | &TagValue::U16(ref v) => { [INFO] [stderr] 719 | | let n = v[0]; [INFO] [stderr] 720 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 727 | | _ => panic!(INV), [INFO] [stderr] 728 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 717 | let s = match *e { [INFO] [stderr] 718 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:146:10 [INFO] [stderr] | [INFO] [stderr] 146 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 147 | | &TagValue::URational(ref v) => { [INFO] [stderr] 148 | | format!("{} mm", v[0].value()) [INFO] [stderr] 149 | | }, [INFO] [stderr] 150 | | _ => panic!(INV), [INFO] [stderr] 151 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 146 | let s = match *e { [INFO] [stderr] 147 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:735:10 [INFO] [stderr] | [INFO] [stderr] 735 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 736 | | &TagValue::U16(ref v) => { [INFO] [stderr] 737 | | let n = v[0]; [INFO] [stderr] 738 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 745 | | _ => panic!(INV), [INFO] [stderr] 746 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 735 | let s = match *e { [INFO] [stderr] 736 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:753:10 [INFO] [stderr] | [INFO] [stderr] 753 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 754 | | &TagValue::U16(ref v) => { [INFO] [stderr] 755 | | let n = v[0]; [INFO] [stderr] 756 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 765 | | _ => panic!(INV), [INFO] [stderr] 766 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 753 | let s = match *e { [INFO] [stderr] 754 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:158:10 [INFO] [stderr] | [INFO] [stderr] 158 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 159 | | &TagValue::U16(ref v) => { [INFO] [stderr] 160 | | format!("{} mm", v[0]) [INFO] [stderr] 161 | | }, [INFO] [stderr] 162 | | _ => panic!(INV), [INFO] [stderr] 163 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 158 | let s = match *e { [INFO] [stderr] 159 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:773:10 [INFO] [stderr] | [INFO] [stderr] 773 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 774 | | &TagValue::U16(ref v) => { [INFO] [stderr] 775 | | let n = v[0]; [INFO] [stderr] 776 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 783 | | _ => panic!(INV), [INFO] [stderr] 784 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 773 | let s = match *e { [INFO] [stderr] 774 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:170:10 [INFO] [stderr] | [INFO] [stderr] 170 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 171 | | &TagValue::URational(ref v) => { [INFO] [stderr] 172 | | format!("{:.1} m", v[0].value()) [INFO] [stderr] 173 | | }, [INFO] [stderr] 174 | | _ => panic!(INV), [INFO] [stderr] 175 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 170 | let s = match *e { [INFO] [stderr] 171 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:791:10 [INFO] [stderr] | [INFO] [stderr] 791 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 792 | | &TagValue::U16(ref v) => { [INFO] [stderr] 793 | | let n = v[0]; [INFO] [stderr] 794 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 802 | | _ => panic!(INV), [INFO] [stderr] 803 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 791 | let s = match *e { [INFO] [stderr] 792 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:810:10 [INFO] [stderr] | [INFO] [stderr] 810 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 811 | | &TagValue::Undefined(ref v, _) => { [INFO] [stderr] 812 | | let n = v[0]; [INFO] [stderr] 813 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 818 | | _ => panic!(INV), [INFO] [stderr] 819 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 810 | let s = match *e { [INFO] [stderr] 811 | TagValue::Undefined(ref v, _) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:182:10 [INFO] [stderr] | [INFO] [stderr] 182 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 183 | | &TagValue::U16(ref v) => { [INFO] [stderr] 184 | | if v.len() == 1 { [INFO] [stderr] 185 | | format!("ISO {}", v[0]) [INFO] [stderr] ... | [INFO] [stderr] 192 | | _ => panic!(INV), [INFO] [stderr] 193 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 182 | let s = match *e { [INFO] [stderr] 183 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:826:10 [INFO] [stderr] | [INFO] [stderr] 826 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 827 | | &TagValue::U16(ref v) => { [INFO] [stderr] 828 | | let n = v[0]; [INFO] [stderr] 829 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 835 | | _ => panic!(INV), [INFO] [stderr] 836 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 826 | let s = match *e { [INFO] [stderr] 827 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:843:10 [INFO] [stderr] | [INFO] [stderr] 843 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 844 | | &TagValue::U16(ref v) => { [INFO] [stderr] 845 | | let n = v[0]; [INFO] [stderr] 846 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 857 | | _ => panic!(INV), [INFO] [stderr] 858 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 843 | let s = match *e { [INFO] [stderr] 844 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:200:10 [INFO] [stderr] | [INFO] [stderr] 200 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 201 | | &TagValue::URational(ref v) => { [INFO] [stderr] 202 | | let deg = v[0]; [INFO] [stderr] 203 | | let min = v[1]; [INFO] [stderr] ... | [INFO] [stderr] 214 | | _ => panic!(INV), [INFO] [stderr] 215 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 200 | let s = match *e { [INFO] [stderr] 201 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:222:10 [INFO] [stderr] | [INFO] [stderr] 222 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 223 | | &TagValue::U8(ref v) => { [INFO] [stderr] 224 | | let n = v[0]; [INFO] [stderr] 225 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 231 | | _ => panic!(INV), [INFO] [stderr] 232 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 222 | let s = match *e { [INFO] [stderr] 223 | TagValue::U8(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:239:10 [INFO] [stderr] | [INFO] [stderr] 239 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 240 | | &TagValue::Ascii(ref v) => { [INFO] [stderr] 241 | | if v == "N" { [INFO] [stderr] 242 | | "kn" [INFO] [stderr] ... | [INFO] [stderr] 251 | | _ => panic!(INV), [INFO] [stderr] 252 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 239 | let s = match *e { [INFO] [stderr] 240 | TagValue::Ascii(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:259:10 [INFO] [stderr] | [INFO] [stderr] 259 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 260 | | &TagValue::URational(ref v) => { [INFO] [stderr] 261 | | format!("{:.3}", v[0].value()) [INFO] [stderr] 262 | | }, [INFO] [stderr] 263 | | _ => panic!(INV), [INFO] [stderr] 264 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 259 | let s = match *e { [INFO] [stderr] 260 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:865:10 [INFO] [stderr] | [INFO] [stderr] 865 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 866 | | &TagValue::U16(ref v) => { [INFO] [stderr] 867 | | let n = v[0]; [INFO] [stderr] 868 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 874 | | _ => panic!(INV), [INFO] [stderr] 875 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 865 | let s = match *e { [INFO] [stderr] 866 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:882:10 [INFO] [stderr] | [INFO] [stderr] 882 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 883 | | &TagValue::U16(ref v) => { [INFO] [stderr] 884 | | let n = v[0]; [INFO] [stderr] 885 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 893 | | _ => panic!(INV), [INFO] [stderr] 894 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 882 | let s = match *e { [INFO] [stderr] 883 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:901:2 [INFO] [stderr] | [INFO] [stderr] 901 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 902 | | &TagValue::URational(ref v) => { [INFO] [stderr] 903 | | let f0 = v[0].value(); [INFO] [stderr] 904 | | let f1 = v[1].value(); [INFO] [stderr] ... | [INFO] [stderr] 924 | | [INFO] [stderr] 925 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 901 | match *e { [INFO] [stderr] 902 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/exifreadable.rs:909:7 [INFO] [stderr] | [INFO] [stderr] 909 | if a0 == a0 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/exifreadable.rs:909:7 [INFO] [stderr] | [INFO] [stderr] 909 | if a0 == a0 { [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(a0 - a0).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/exifreadable.rs:909:7 [INFO] [stderr] | [INFO] [stderr] 909 | if a0 == a0 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/exifreadable.rs:915:7 [INFO] [stderr] | [INFO] [stderr] 915 | if a0 == a0 && a1 == a1 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/exifreadable.rs:915:7 [INFO] [stderr] | [INFO] [stderr] 915 | if a0 == a0 && a1 == a1 { [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(a0 - a0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/exifreadable.rs:915:7 [INFO] [stderr] | [INFO] [stderr] 915 | if a0 == a0 && a1 == a1 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/exifreadable.rs:915:19 [INFO] [stderr] | [INFO] [stderr] 915 | if a0 == a0 && a1 == a1 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/exifreadable.rs:915:19 [INFO] [stderr] | [INFO] [stderr] 915 | if a0 == a0 && a1 == a1 { [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(a1 - a1).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/exifreadable.rs:915:19 [INFO] [stderr] | [INFO] [stderr] 915 | if a0 == a0 && a1 == a1 { [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/exifpost.rs:4:37 [INFO] [stderr] | [INFO] [stderr] 4 | fn other_tag(tag: ExifTag, entries: &Vec) -> Option<&ExifEntry> [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[ExifEntry]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:271:10 [INFO] [stderr] | [INFO] [stderr] 271 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 272 | | &TagValue::Ascii(ref v) => { [INFO] [stderr] 273 | | if v == "N" { [INFO] [stderr] 274 | | "kn" [INFO] [stderr] ... | [INFO] [stderr] 283 | | _ => panic!(INV), [INFO] [stderr] 284 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 271 | let s = match *e { [INFO] [stderr] 272 | TagValue::Ascii(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/exifpost.rs:16:60 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn exif_postprocessing(entry: &mut ExifEntry, entries: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[ExifEntry]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:291:10 [INFO] [stderr] | [INFO] [stderr] 291 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 292 | | &TagValue::URational(ref v) => { [INFO] [stderr] 293 | | format!("{:.1}", v[0].value()) [INFO] [stderr] 294 | | }, [INFO] [stderr] 295 | | _ => panic!(INV), [INFO] [stderr] 296 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 291 | let s = match *e { [INFO] [stderr] 292 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:303:10 [INFO] [stderr] | [INFO] [stderr] 303 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 304 | | &TagValue::Ascii(ref v) => { [INFO] [stderr] 305 | | if v == "T" { [INFO] [stderr] 306 | | "True bearing" [INFO] [stderr] ... | [INFO] [stderr] 313 | | _ => panic!(INV), [INFO] [stderr] 314 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 303 | let s = match *e { [INFO] [stderr] 304 | TagValue::Ascii(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:21:2 [INFO] [stderr] | [INFO] [stderr] 21 | match other_tag(ExifTag::ResolutionUnit, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 22 | | Some(f) => { [INFO] [stderr] 23 | | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 24 | | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] ... | [INFO] [stderr] 27 | | None => (), [INFO] [stderr] 28 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 21 | if let Some(f) = other_tag(ExifTag::ResolutionUnit, entries) { [INFO] [stderr] 22 | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 23 | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] 24 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 25 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:31:2 [INFO] [stderr] | [INFO] [stderr] 31 | match other_tag(ExifTag::ResolutionUnit, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 32 | | Some(f) => { [INFO] [stderr] 33 | | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 34 | | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] ... | [INFO] [stderr] 37 | | None => (), [INFO] [stderr] 38 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:321:10 [INFO] [stderr] | [INFO] [stderr] 321 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 322 | | &TagValue::URational(ref v) => { [INFO] [stderr] 323 | | format!("{:.2}°", v[0].value()) [INFO] [stderr] 324 | | }, [INFO] [stderr] 325 | | _ => panic!(INV), [INFO] [stderr] 326 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 321 | let s = match *e { [INFO] [stderr] 322 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 31 | if let Some(f) = other_tag(ExifTag::ResolutionUnit, entries) { [INFO] [stderr] 32 | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 33 | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] 34 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 35 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:41:2 [INFO] [stderr] | [INFO] [stderr] 41 | match other_tag(ExifTag::FocalPlaneResolutionUnit, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 42 | | Some(f) => { [INFO] [stderr] 43 | | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 44 | | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] ... | [INFO] [stderr] 47 | | None => (), [INFO] [stderr] 48 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 41 | if let Some(f) = other_tag(ExifTag::FocalPlaneResolutionUnit, entries) { [INFO] [stderr] 42 | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 43 | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] 44 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 45 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:51:2 [INFO] [stderr] | [INFO] [stderr] 51 | match other_tag(ExifTag::FocalPlaneResolutionUnit, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 52 | | Some(f) => { [INFO] [stderr] 53 | | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 54 | | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] ... | [INFO] [stderr] 57 | | None => (), [INFO] [stderr] 58 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 51 | if let Some(f) = other_tag(ExifTag::FocalPlaneResolutionUnit, entries) { [INFO] [stderr] 52 | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 53 | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] 54 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 55 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:61:2 [INFO] [stderr] | [INFO] [stderr] 61 | match other_tag(ExifTag::GPSLatitudeRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 62 | | Some(f) => { [INFO] [stderr] 63 | | entry.value_more_readable.push_str(" "); [INFO] [stderr] 64 | | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 65 | | }, [INFO] [stderr] 66 | | None => (), [INFO] [stderr] 67 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 61 | if let Some(f) = other_tag(ExifTag::GPSLatitudeRef, entries) { [INFO] [stderr] 62 | entry.value_more_readable.push_str(" "); [INFO] [stderr] 63 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 64 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:70:2 [INFO] [stderr] | [INFO] [stderr] 70 | match other_tag(ExifTag::GPSLongitudeRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 71 | | Some(f) => { [INFO] [stderr] 72 | | entry.value_more_readable.push_str(" "); [INFO] [stderr] 73 | | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 74 | | }, [INFO] [stderr] 75 | | None => (), [INFO] [stderr] 76 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 70 | if let Some(f) = other_tag(ExifTag::GPSLongitudeRef, entries) { [INFO] [stderr] 71 | entry.value_more_readable.push_str(" "); [INFO] [stderr] 72 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 73 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:333:10 [INFO] [stderr] | [INFO] [stderr] 333 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 334 | | &TagValue::URational(ref v) => { [INFO] [stderr] 335 | | let hour = v[0]; [INFO] [stderr] 336 | | let min = v[1]; [INFO] [stderr] ... | [INFO] [stderr] 340 | | _ => panic!(INV), [INFO] [stderr] 341 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 333 | let s = match *e { [INFO] [stderr] 334 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:79:2 [INFO] [stderr] | [INFO] [stderr] 79 | match other_tag(ExifTag::GPSAltitudeRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 80 | | Some(f) => { [INFO] [stderr] 81 | | let altref = match f.value { [INFO] [stderr] 82 | | TagValue::U8(ref fv) => fv[0], [INFO] [stderr] ... | [INFO] [stderr] 90 | | None => (), [INFO] [stderr] 91 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 79 | if let Some(f) = other_tag(ExifTag::GPSAltitudeRef, entries) { [INFO] [stderr] 80 | let altref = match f.value { [INFO] [stderr] 81 | TagValue::U8(ref fv) => fv[0], [INFO] [stderr] 82 | _ => return () [INFO] [stderr] 83 | }; [INFO] [stderr] 84 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:94:2 [INFO] [stderr] | [INFO] [stderr] 94 | match other_tag(ExifTag::GPSDestLatitudeRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 95 | | Some(f) => { [INFO] [stderr] 96 | | entry.value_more_readable.push_str(" "); [INFO] [stderr] 97 | | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 98 | | }, [INFO] [stderr] 99 | | None => (), [INFO] [stderr] 100 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 94 | if let Some(f) = other_tag(ExifTag::GPSDestLatitudeRef, entries) { [INFO] [stderr] 95 | entry.value_more_readable.push_str(" "); [INFO] [stderr] 96 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 97 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:103:2 [INFO] [stderr] | [INFO] [stderr] 103 | match other_tag(ExifTag::GPSDestLongitudeRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 104 | | Some(f) => { [INFO] [stderr] 105 | | entry.value_more_readable.push_str(" "); [INFO] [stderr] 106 | | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 107 | | }, [INFO] [stderr] 108 | | None => (), [INFO] [stderr] 109 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 103 | if let Some(f) = other_tag(ExifTag::GPSDestLongitudeRef, entries) { [INFO] [stderr] 104 | entry.value_more_readable.push_str(" "); [INFO] [stderr] 105 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 106 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:112:2 [INFO] [stderr] | [INFO] [stderr] 112 | match other_tag(ExifTag::GPSDestDistanceRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 113 | | Some(f) => { [INFO] [stderr] 114 | | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 115 | | entry.value_more_readable.push_str(" "); [INFO] [stderr] ... | [INFO] [stderr] 118 | | None => (), [INFO] [stderr] 119 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 112 | if let Some(f) = other_tag(ExifTag::GPSDestDistanceRef, entries) { [INFO] [stderr] 113 | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 114 | entry.value_more_readable.push_str(" "); [INFO] [stderr] 115 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 116 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:348:10 [INFO] [stderr] | [INFO] [stderr] 348 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 349 | | &TagValue::U16(ref v) => { [INFO] [stderr] 350 | | let n = v[0]; [INFO] [stderr] 351 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 357 | | _ => panic!(INV), [INFO] [stderr] 358 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 348 | let s = match *e { [INFO] [stderr] 349 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:122:2 [INFO] [stderr] | [INFO] [stderr] 122 | match other_tag(ExifTag::GPSSpeedRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 123 | | Some(f) => { [INFO] [stderr] 124 | | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 125 | | entry.value_more_readable.push_str(" "); [INFO] [stderr] ... | [INFO] [stderr] 128 | | None => (), [INFO] [stderr] 129 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 122 | if let Some(f) = other_tag(ExifTag::GPSSpeedRef, entries) { [INFO] [stderr] 123 | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 124 | entry.value_more_readable.push_str(" "); [INFO] [stderr] 125 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 126 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/exif.rs:7:31 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn tag_to_exif(f: u16) -> (ExifTag, &'static str, IfdFormat, i32, i32, [INFO] [stderr] | _______________________________^ [INFO] [stderr] 8 | | fn(&TagValue) -> String) [INFO] [stderr] | |_______________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:365:10 [INFO] [stderr] | [INFO] [stderr] 365 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 366 | | &TagValue::Ascii(ref v) => { [INFO] [stderr] 367 | | if v == "A" { [INFO] [stderr] 368 | | "Measurement in progress" [INFO] [stderr] ... | [INFO] [stderr] 375 | | _ => panic!(INV), [INFO] [stderr] 376 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 365 | let s = match *e { [INFO] [stderr] 366 | TagValue::Ascii(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:383:10 [INFO] [stderr] | [INFO] [stderr] 383 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 384 | | &TagValue::Ascii(ref v) => { [INFO] [stderr] 385 | | if v == "2" { [INFO] [stderr] 386 | | "2-dimension" [INFO] [stderr] ... | [INFO] [stderr] 393 | | _ => panic!(INV), [INFO] [stderr] 394 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 383 | let s = match *e { [INFO] [stderr] 384 | TagValue::Ascii(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:404:10 [INFO] [stderr] | [INFO] [stderr] 404 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 405 | | &TagValue::Undefined(ref v, _) => { [INFO] [stderr] 406 | | String::from_utf8_lossy(&v[..]) [INFO] [stderr] 407 | | }, [INFO] [stderr] 408 | | _ => panic!(INV), [INFO] [stderr] 409 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 404 | let s = match *e { [INFO] [stderr] 405 | TagValue::Undefined(ref v, _) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:418:10 [INFO] [stderr] | [INFO] [stderr] 418 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 419 | | &TagValue::Undefined(ref v, _) => { [INFO] [stderr] 420 | | numarray_to_string(v) [INFO] [stderr] 421 | | }, [INFO] [stderr] 422 | | _ => panic!(INV), [INFO] [stderr] 423 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 418 | let s = match *e { [INFO] [stderr] 419 | TagValue::Undefined(ref v, _) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:440:2 [INFO] [stderr] | [INFO] [stderr] 440 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 441 | | &TagValue::Undefined(ref v, le) => { [INFO] [stderr] 442 | | if v.len() < 8 { [INFO] [stderr] 443 | | format!("String w/ truncated preamble {}", numarray_to_string(v)) [INFO] [stderr] ... | [INFO] [stderr] 461 | | _ => panic!(INV), [INFO] [stderr] 462 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 440 | match *e { [INFO] [stderr] 441 | TagValue::Undefined(ref v, le) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/exifreadable.rs:449:22 [INFO] [stderr] | [INFO] [stderr] 449 | let v8: Vec = v[8..].iter().map(|&x| x).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `v[8..].iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:468:10 [INFO] [stderr] | [INFO] [stderr] 468 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 469 | | &TagValue::Undefined(ref v, _) => { [INFO] [stderr] 470 | | format!("Blob of {} bytes", v.len()) [INFO] [stderr] 471 | | }, [INFO] [stderr] 472 | | _ => panic!(INV), [INFO] [stderr] 473 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 468 | let s = match *e { [INFO] [stderr] 469 | TagValue::Undefined(ref v, _) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:480:2 [INFO] [stderr] | [INFO] [stderr] 480 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 481 | | &TagValue::IRational(ref v) => { [INFO] [stderr] 482 | | format!("{:.1} Tv APEX", v[0].value()) [INFO] [stderr] 483 | | }, [INFO] [stderr] 484 | | _ => panic!(INV), [INFO] [stderr] 485 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 480 | match *e { [INFO] [stderr] 481 | TagValue::IRational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:490:2 [INFO] [stderr] | [INFO] [stderr] 490 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 491 | | &TagValue::URational(ref v) => { [INFO] [stderr] 492 | | format!("{:.1} Av APEX", v[0].value()) [INFO] [stderr] 493 | | }, [INFO] [stderr] 494 | | _ => panic!(INV), [INFO] [stderr] 495 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 490 | match *e { [INFO] [stderr] 491 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:500:2 [INFO] [stderr] | [INFO] [stderr] 500 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 501 | | &TagValue::IRational(ref v) => { [INFO] [stderr] 502 | | // numerator 0xffffffff = unknown [INFO] [stderr] 503 | | if v[0].numerator == -1 { [INFO] [stderr] ... | [INFO] [stderr] 509 | | _ => panic!(INV), [INFO] [stderr] 510 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 500 | match *e { [INFO] [stderr] 501 | TagValue::IRational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:515:2 [INFO] [stderr] | [INFO] [stderr] 515 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 516 | | &TagValue::IRational(ref v) => { [INFO] [stderr] 517 | | format!("{:.2} EV APEX", v[0].value()) [INFO] [stderr] 518 | | }, [INFO] [stderr] 519 | | _ => panic!(INV), [INFO] [stderr] 520 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 515 | match *e { [INFO] [stderr] 516 | TagValue::IRational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:525:10 [INFO] [stderr] | [INFO] [stderr] 525 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 526 | | &TagValue::Undefined(ref v, _) => { [INFO] [stderr] 527 | | if v.len() > 0 && v[0] == 3 { [INFO] [stderr] 528 | | "DSC" [INFO] [stderr] ... | [INFO] [stderr] 533 | | _ => panic!(INV), [INFO] [stderr] 534 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 525 | let s = match *e { [INFO] [stderr] 526 | TagValue::Undefined(ref v, _) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/exifreadable.rs:527:6 [INFO] [stderr] | [INFO] [stderr] 527 | if v.len() > 0 && v[0] == 3 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!v.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:541:2 [INFO] [stderr] | [INFO] [stderr] 541 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 542 | | &TagValue::URational(ref v) => { [INFO] [stderr] 543 | | format!("{} BCPS", v[0].value()) [INFO] [stderr] 544 | | }, [INFO] [stderr] 545 | | _ => panic!(INV), [INFO] [stderr] 546 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 541 | match *e { [INFO] [stderr] 542 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:551:10 [INFO] [stderr] | [INFO] [stderr] 551 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 552 | | &TagValue::U16(ref v) => { [INFO] [stderr] 553 | | let n = v[0]; [INFO] [stderr] 554 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 566 | | _ => panic!(INV), [INFO] [stderr] 567 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 551 | let s = match *e { [INFO] [stderr] 552 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:574:10 [INFO] [stderr] | [INFO] [stderr] 574 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 575 | | &TagValue::U16(ref v) => { [INFO] [stderr] 576 | | let n = v[0]; [INFO] [stderr] 577 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 602 | | _ => panic!(INV), [INFO] [stderr] 603 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 574 | let s = match *e { [INFO] [stderr] 575 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: Could not compile `rexif`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:610:10 [INFO] [stderr] | [INFO] [stderr] 610 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 611 | | &TagValue::U16(ref v) => { [INFO] [stderr] 612 | | let n = v[0]; [INFO] [stderr] 613 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 619 | | _ => panic!(INV), [INFO] [stderr] 620 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 610 | let s = match *e { [INFO] [stderr] 611 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:627:2 [INFO] [stderr] | [INFO] [stderr] 627 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 628 | | &TagValue::U16(ref v) => { [INFO] [stderr] 629 | | let n = v[0]; [INFO] [stderr] 630 | | let mut b0 = "Did not fire. "; [INFO] [stderr] ... | [INFO] [stderr] 668 | | _ => panic!(INV), [INFO] [stderr] 669 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 627 | match *e { [INFO] [stderr] 628 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/exifreadable.rs:636:12 [INFO] [stderr] | [INFO] [stderr] 636 | return format!("Does not have a flash."); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Does not have a flash.".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:674:2 [INFO] [stderr] | [INFO] [stderr] 674 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 675 | | &TagValue::U16(ref v) => { [INFO] [stderr] 676 | | match v.len() { [INFO] [stderr] 677 | | 2 => format!("at pixel {},{}", v[0], v[1]), [INFO] [stderr] ... | [INFO] [stderr] 683 | | _ => panic!(INV), [INFO] [stderr] 684 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 674 | match *e { [INFO] [stderr] 675 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:689:2 [INFO] [stderr] | [INFO] [stderr] 689 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 690 | | &TagValue::U16(ref v) => { [INFO] [stderr] 691 | | format!("at pixel {},{}", v[0], v[1]) [INFO] [stderr] 692 | | }, [INFO] [stderr] 693 | | _ => panic!(INV), [INFO] [stderr] 694 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 689 | match *e { [INFO] [stderr] 690 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:699:10 [INFO] [stderr] | [INFO] [stderr] 699 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 700 | | &TagValue::U16(ref v) => { [INFO] [stderr] 701 | | let n = v[0]; [INFO] [stderr] 702 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 709 | | _ => panic!(INV), [INFO] [stderr] 710 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 699 | let s = match *e { [INFO] [stderr] 700 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:717:10 [INFO] [stderr] | [INFO] [stderr] 717 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 718 | | &TagValue::U16(ref v) => { [INFO] [stderr] 719 | | let n = v[0]; [INFO] [stderr] 720 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 727 | | _ => panic!(INV), [INFO] [stderr] 728 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 717 | let s = match *e { [INFO] [stderr] 718 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:735:10 [INFO] [stderr] | [INFO] [stderr] 735 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 736 | | &TagValue::U16(ref v) => { [INFO] [stderr] 737 | | let n = v[0]; [INFO] [stderr] 738 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 745 | | _ => panic!(INV), [INFO] [stderr] 746 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 735 | let s = match *e { [INFO] [stderr] 736 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:753:10 [INFO] [stderr] | [INFO] [stderr] 753 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 754 | | &TagValue::U16(ref v) => { [INFO] [stderr] 755 | | let n = v[0]; [INFO] [stderr] 756 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 765 | | _ => panic!(INV), [INFO] [stderr] 766 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 753 | let s = match *e { [INFO] [stderr] 754 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:773:10 [INFO] [stderr] | [INFO] [stderr] 773 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 774 | | &TagValue::U16(ref v) => { [INFO] [stderr] 775 | | let n = v[0]; [INFO] [stderr] 776 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 783 | | _ => panic!(INV), [INFO] [stderr] 784 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 773 | let s = match *e { [INFO] [stderr] 774 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:791:10 [INFO] [stderr] | [INFO] [stderr] 791 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 792 | | &TagValue::U16(ref v) => { [INFO] [stderr] 793 | | let n = v[0]; [INFO] [stderr] 794 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 802 | | _ => panic!(INV), [INFO] [stderr] 803 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 791 | let s = match *e { [INFO] [stderr] 792 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:810:10 [INFO] [stderr] | [INFO] [stderr] 810 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 811 | | &TagValue::Undefined(ref v, _) => { [INFO] [stderr] 812 | | let n = v[0]; [INFO] [stderr] 813 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 818 | | _ => panic!(INV), [INFO] [stderr] 819 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 810 | let s = match *e { [INFO] [stderr] 811 | TagValue::Undefined(ref v, _) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:826:10 [INFO] [stderr] | [INFO] [stderr] 826 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 827 | | &TagValue::U16(ref v) => { [INFO] [stderr] 828 | | let n = v[0]; [INFO] [stderr] 829 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 835 | | _ => panic!(INV), [INFO] [stderr] 836 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 826 | let s = match *e { [INFO] [stderr] 827 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:843:10 [INFO] [stderr] | [INFO] [stderr] 843 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 844 | | &TagValue::U16(ref v) => { [INFO] [stderr] 845 | | let n = v[0]; [INFO] [stderr] 846 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 857 | | _ => panic!(INV), [INFO] [stderr] 858 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 843 | let s = match *e { [INFO] [stderr] 844 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:865:10 [INFO] [stderr] | [INFO] [stderr] 865 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 866 | | &TagValue::U16(ref v) => { [INFO] [stderr] 867 | | let n = v[0]; [INFO] [stderr] 868 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 874 | | _ => panic!(INV), [INFO] [stderr] 875 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 865 | let s = match *e { [INFO] [stderr] 866 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:882:10 [INFO] [stderr] | [INFO] [stderr] 882 | let s = match e { [INFO] [stderr] | _____________^ [INFO] [stderr] 883 | | &TagValue::U16(ref v) => { [INFO] [stderr] 884 | | let n = v[0]; [INFO] [stderr] 885 | | match n { [INFO] [stderr] ... | [INFO] [stderr] 893 | | _ => panic!(INV), [INFO] [stderr] 894 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 882 | let s = match *e { [INFO] [stderr] 883 | TagValue::U16(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/exifreadable.rs:901:2 [INFO] [stderr] | [INFO] [stderr] 901 | match e { [INFO] [stderr] | _____^ [INFO] [stderr] 902 | | &TagValue::URational(ref v) => { [INFO] [stderr] 903 | | let f0 = v[0].value(); [INFO] [stderr] 904 | | let f1 = v[1].value(); [INFO] [stderr] ... | [INFO] [stderr] 924 | | [INFO] [stderr] 925 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 901 | match *e { [INFO] [stderr] 902 | TagValue::URational(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/exifreadable.rs:909:7 [INFO] [stderr] | [INFO] [stderr] 909 | if a0 == a0 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/exifreadable.rs:909:7 [INFO] [stderr] | [INFO] [stderr] 909 | if a0 == a0 { [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(a0 - a0).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/exifreadable.rs:909:7 [INFO] [stderr] | [INFO] [stderr] 909 | if a0 == a0 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/exifreadable.rs:915:7 [INFO] [stderr] | [INFO] [stderr] 915 | if a0 == a0 && a1 == a1 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/exifreadable.rs:915:7 [INFO] [stderr] | [INFO] [stderr] 915 | if a0 == a0 && a1 == a1 { [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(a0 - a0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/exifreadable.rs:915:7 [INFO] [stderr] | [INFO] [stderr] 915 | if a0 == a0 && a1 == a1 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/exifreadable.rs:915:19 [INFO] [stderr] | [INFO] [stderr] 915 | if a0 == a0 && a1 == a1 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/exifreadable.rs:915:19 [INFO] [stderr] | [INFO] [stderr] 915 | if a0 == a0 && a1 == a1 { [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(a1 - a1).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/exifreadable.rs:915:19 [INFO] [stderr] | [INFO] [stderr] 915 | if a0 == a0 && a1 == a1 { [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/exifpost.rs:4:37 [INFO] [stderr] | [INFO] [stderr] 4 | fn other_tag(tag: ExifTag, entries: &Vec) -> Option<&ExifEntry> [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[ExifEntry]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/exifpost.rs:16:60 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn exif_postprocessing(entry: &mut ExifEntry, entries: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[ExifEntry]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:21:2 [INFO] [stderr] | [INFO] [stderr] 21 | match other_tag(ExifTag::ResolutionUnit, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 22 | | Some(f) => { [INFO] [stderr] 23 | | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 24 | | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] ... | [INFO] [stderr] 27 | | None => (), [INFO] [stderr] 28 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 21 | if let Some(f) = other_tag(ExifTag::ResolutionUnit, entries) { [INFO] [stderr] 22 | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 23 | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] 24 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 25 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:31:2 [INFO] [stderr] | [INFO] [stderr] 31 | match other_tag(ExifTag::ResolutionUnit, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 32 | | Some(f) => { [INFO] [stderr] 33 | | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 34 | | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] ... | [INFO] [stderr] 37 | | None => (), [INFO] [stderr] 38 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 31 | if let Some(f) = other_tag(ExifTag::ResolutionUnit, entries) { [INFO] [stderr] 32 | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 33 | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] 34 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 35 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:41:2 [INFO] [stderr] | [INFO] [stderr] 41 | match other_tag(ExifTag::FocalPlaneResolutionUnit, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 42 | | Some(f) => { [INFO] [stderr] 43 | | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 44 | | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] ... | [INFO] [stderr] 47 | | None => (), [INFO] [stderr] 48 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 41 | if let Some(f) = other_tag(ExifTag::FocalPlaneResolutionUnit, entries) { [INFO] [stderr] 42 | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 43 | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] 44 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 45 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:51:2 [INFO] [stderr] | [INFO] [stderr] 51 | match other_tag(ExifTag::FocalPlaneResolutionUnit, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 52 | | Some(f) => { [INFO] [stderr] 53 | | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 54 | | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] ... | [INFO] [stderr] 57 | | None => (), [INFO] [stderr] 58 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 51 | if let Some(f) = other_tag(ExifTag::FocalPlaneResolutionUnit, entries) { [INFO] [stderr] 52 | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 53 | entry.value_more_readable.push_str(" pixels per "); [INFO] [stderr] 54 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 55 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:61:2 [INFO] [stderr] | [INFO] [stderr] 61 | match other_tag(ExifTag::GPSLatitudeRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 62 | | Some(f) => { [INFO] [stderr] 63 | | entry.value_more_readable.push_str(" "); [INFO] [stderr] 64 | | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 65 | | }, [INFO] [stderr] 66 | | None => (), [INFO] [stderr] 67 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 61 | if let Some(f) = other_tag(ExifTag::GPSLatitudeRef, entries) { [INFO] [stderr] 62 | entry.value_more_readable.push_str(" "); [INFO] [stderr] 63 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 64 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:70:2 [INFO] [stderr] | [INFO] [stderr] 70 | match other_tag(ExifTag::GPSLongitudeRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 71 | | Some(f) => { [INFO] [stderr] 72 | | entry.value_more_readable.push_str(" "); [INFO] [stderr] 73 | | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 74 | | }, [INFO] [stderr] 75 | | None => (), [INFO] [stderr] 76 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 70 | if let Some(f) = other_tag(ExifTag::GPSLongitudeRef, entries) { [INFO] [stderr] 71 | entry.value_more_readable.push_str(" "); [INFO] [stderr] 72 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 73 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:79:2 [INFO] [stderr] | [INFO] [stderr] 79 | match other_tag(ExifTag::GPSAltitudeRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 80 | | Some(f) => { [INFO] [stderr] 81 | | let altref = match f.value { [INFO] [stderr] 82 | | TagValue::U8(ref fv) => fv[0], [INFO] [stderr] ... | [INFO] [stderr] 90 | | None => (), [INFO] [stderr] 91 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 79 | if let Some(f) = other_tag(ExifTag::GPSAltitudeRef, entries) { [INFO] [stderr] 80 | let altref = match f.value { [INFO] [stderr] 81 | TagValue::U8(ref fv) => fv[0], [INFO] [stderr] 82 | _ => return () [INFO] [stderr] 83 | }; [INFO] [stderr] 84 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:94:2 [INFO] [stderr] | [INFO] [stderr] 94 | match other_tag(ExifTag::GPSDestLatitudeRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 95 | | Some(f) => { [INFO] [stderr] 96 | | entry.value_more_readable.push_str(" "); [INFO] [stderr] 97 | | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 98 | | }, [INFO] [stderr] 99 | | None => (), [INFO] [stderr] 100 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 94 | if let Some(f) = other_tag(ExifTag::GPSDestLatitudeRef, entries) { [INFO] [stderr] 95 | entry.value_more_readable.push_str(" "); [INFO] [stderr] 96 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 97 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:103:2 [INFO] [stderr] | [INFO] [stderr] 103 | match other_tag(ExifTag::GPSDestLongitudeRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 104 | | Some(f) => { [INFO] [stderr] 105 | | entry.value_more_readable.push_str(" "); [INFO] [stderr] 106 | | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 107 | | }, [INFO] [stderr] 108 | | None => (), [INFO] [stderr] 109 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 103 | if let Some(f) = other_tag(ExifTag::GPSDestLongitudeRef, entries) { [INFO] [stderr] 104 | entry.value_more_readable.push_str(" "); [INFO] [stderr] 105 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 106 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:112:2 [INFO] [stderr] | [INFO] [stderr] 112 | match other_tag(ExifTag::GPSDestDistanceRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 113 | | Some(f) => { [INFO] [stderr] 114 | | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 115 | | entry.value_more_readable.push_str(" "); [INFO] [stderr] ... | [INFO] [stderr] 118 | | None => (), [INFO] [stderr] 119 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 112 | if let Some(f) = other_tag(ExifTag::GPSDestDistanceRef, entries) { [INFO] [stderr] 113 | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 114 | entry.value_more_readable.push_str(" "); [INFO] [stderr] 115 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 116 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/exifpost.rs:122:2 [INFO] [stderr] | [INFO] [stderr] 122 | match other_tag(ExifTag::GPSSpeedRef, entries) { [INFO] [stderr] | _____^ [INFO] [stderr] 123 | | Some(f) => { [INFO] [stderr] 124 | | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 125 | | entry.value_more_readable.push_str(" "); [INFO] [stderr] ... | [INFO] [stderr] 128 | | None => (), [INFO] [stderr] 129 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 122 | if let Some(f) = other_tag(ExifTag::GPSSpeedRef, entries) { [INFO] [stderr] 123 | entry.unit = f.value_more_readable.clone(); [INFO] [stderr] 124 | entry.value_more_readable.push_str(" "); [INFO] [stderr] 125 | entry.value_more_readable.push_str(&f.value_more_readable); [INFO] [stderr] 126 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/exif.rs:7:31 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn tag_to_exif(f: u16) -> (ExifTag, &'static str, IfdFormat, i32, i32, [INFO] [stderr] | _______________________________^ [INFO] [stderr] 8 | | fn(&TagValue) -> String) [INFO] [stderr] | |_______________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rexif`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "8505bb0cf9c57f8ad990c2edf073b02a82e596df007b097a8c964fcbb9232e07"` [INFO] running `"docker" "rm" "-f" "8505bb0cf9c57f8ad990c2edf073b02a82e596df007b097a8c964fcbb9232e07"` [INFO] [stdout] 8505bb0cf9c57f8ad990c2edf073b02a82e596df007b097a8c964fcbb9232e07