Enable clippy with dev feature, and fix several clippy lints

This commit is contained in:
Josh Holmer 2016-08-20 20:47:26 -04:00
parent 9ebd652a32
commit e0dfbf3533
3 changed files with 34 additions and 34 deletions

View file

@ -1,3 +1,7 @@
#![cfg_attr(feature="dev", feature(plugin))]
#![cfg_attr(feature="dev", plugin(clippy))]
#![cfg_attr(feature="dev", allow(module_inception))]
extern crate bit_vec;
extern crate byteorder;
extern crate crc;
@ -483,8 +487,7 @@ fn optimize_png(mut png: &mut png::PngData, file_original_size: usize, opts: &Op
let best: Mutex<Option<TrialWithData>> = Mutex::new(None);
let combinations = filter.len() * compression.len() * memory.len() * strategies.len();
let mut results: Vec<(u8, u8, u8, u8)> = Vec::with_capacity(combinations);
let filters: Mutex<HashMap<u8, Vec<u8>>> =
Mutex::new(HashMap::with_capacity(filter.len()));
let filters: Mutex<HashMap<u8, Vec<u8>>> = Mutex::new(HashMap::with_capacity(filter.len()));
if opts.verbosity.is_some() {
writeln!(&mut stderr(), "Trying: {} combinations", combinations).ok();
}
@ -606,31 +609,25 @@ fn optimize_png(mut png: &mut png::PngData, file_original_size: usize, opts: &Op
fn perform_reductions(png: &mut png::PngData, opts: &Options) -> bool {
let mut something_changed = false;
if opts.palette_reduction {
if png.reduce_palette() {
something_changed = true;
if opts.verbosity == Some(1) {
report_reduction(png);
}
};
if opts.palette_reduction && png.reduce_palette() {
something_changed = true;
if opts.verbosity == Some(1) {
report_reduction(png);
}
}
if opts.bit_depth_reduction {
if png.reduce_bit_depth() {
something_changed = true;
if opts.verbosity == Some(1) {
report_reduction(png);
}
};
if opts.bit_depth_reduction && png.reduce_bit_depth() {
something_changed = true;
if opts.verbosity == Some(1) {
report_reduction(png);
}
}
if opts.color_type_reduction {
if png.reduce_color_type() {
something_changed = true;
if opts.verbosity == Some(1) {
report_reduction(png);
}
};
if opts.color_type_reduction && png.reduce_color_type() {
something_changed = true;
if opts.verbosity == Some(1) {
report_reduction(png);
}
}
if something_changed && opts.verbosity.is_some() {
@ -668,15 +665,15 @@ fn report_reduction(png: &png::PngData) {
/// Strip headers from the `PngData` object, as requested by the passed `Options`
fn perform_strip(png: &mut png::PngData, opts: &Options) {
match &opts.strip {
match opts.strip {
// Strip headers
&Headers::None => (),
&Headers::Some(ref hdrs) => {
Headers::None => (),
Headers::Some(ref hdrs) => {
for hdr in hdrs {
png.aux_headers.remove(hdr);
}
}
&Headers::Safe => {
Headers::Safe => {
const PRESERVED_HEADERS: [&'static str; 9] = ["cHRM", "gAMA", "iCCP", "sBIT", "sRGB",
"bKGD", "hIST", "pHYs", "sPLT"];
let hdrs = png.aux_headers.keys().cloned().collect::<Vec<String>>();
@ -686,7 +683,7 @@ fn perform_strip(png: &mut png::PngData, opts: &Options) {
}
}
}
&Headers::All => {
Headers::All => {
png.aux_headers = HashMap::new();
}
}

View file

@ -1,3 +1,6 @@
#![cfg_attr(feature="dev", feature(plugin))]
#![cfg_attr(feature="dev", plugin(clippy))]
extern crate oxipng;
extern crate clap;
extern crate regex;

View file

@ -300,24 +300,24 @@ impl PngData {
// Ancillary headers
for (key, header) in self.aux_headers
.iter()
.filter(|&(ref key, _)| !(**key == "bKGD" || **key == "hIST" || **key == "tRNS")) {
.filter(|&(key, _)| !(*key == "bKGD" || *key == "hIST" || *key == "tRNS")) {
write_png_block(key.as_bytes(), header, &mut output);
}
// Palette
if let Some(ref palette) = self.palette {
write_png_block(b"PLTE", &palette, &mut output);
write_png_block(b"PLTE", palette, &mut output);
if let Some(ref transparency_palette) = self.transparency_palette {
// Transparency pixel
write_png_block(b"tRNS", &transparency_palette, &mut output);
write_png_block(b"tRNS", transparency_palette, &mut output);
}
} else if let Some(ref transparency_pixel) = self.transparency_pixel {
// Transparency pixel
write_png_block(b"tRNS", &transparency_pixel, &mut output);
write_png_block(b"tRNS", transparency_pixel, &mut output);
}
// Special ancillary headers that need to come after PLTE but before IDAT
for (key, header) in self.aux_headers
.iter()
.filter(|&(ref key, _)| **key == "bKGD" || **key == "hIST" || **key == "tRNS") {
.filter(|&(key, _)| *key == "bKGD" || *key == "hIST" || *key == "tRNS") {
write_png_block(key.as_bytes(), header, &mut output);
}
// IDAT data
@ -547,7 +547,7 @@ impl PngData {
}
let unused: Vec<u8> =
(0..indexed_palette.len() as u8).filter(|i| !seen.contains(&i)).collect();
(0..indexed_palette.len() as u8).filter(|i| !seen.contains(i)).collect();
// Remove unused palette indices
self.do_palette_reduction(&unused, &mut index_map, &mut indexed_palette);