From 7fcfeee97ea5412a78b18ac39c722a68f689e5b8 Mon Sep 17 00:00:00 2001 From: ConnorSkees <39542938+ConnorSkees@users.noreply.github.com> Date: Sun, 9 Feb 2020 19:07:44 -0500 Subject: [PATCH] clippy --- src/color/mod.rs | 38 +++++++++++++++++++++----------------- src/color/name.rs | 18 ++++++------------ src/mixin.rs | 2 +- src/selector.rs | 3 +-- src/style.rs | 2 +- src/value/ops.rs | 2 +- src/value/parse.rs | 33 ++++++++++++++++----------------- 7 files changed, 47 insertions(+), 51 deletions(-) diff --git a/src/color/mod.rs b/src/color/mod.rs index 6fc3454..b67853c 100644 --- a/src/color/mod.rs +++ b/src/color/mod.rs @@ -41,20 +41,20 @@ impl Color { } /// Calculate hue from RGBA values - /// Algorithm adapted from http://www.niwa.nu/2013/05/math-behind-colorspace-conversions-rgb-hsl/ + /// Algorithm adapted from pub fn hue(&self) -> Number { let red = self.red.clone() / Number::from(255); let green = self.green.clone() / Number::from(255); let blue = self.blue.clone() / Number::from(255); let min = red.clone().min(green.clone().min(blue.clone())); let max = red.clone().max(green.clone().max(blue.clone())); - if &min == &max { + if min == max { return Number::from(0); } - let mut hue = if &red == &max { + let mut hue = if red == max { (green - blue) / (max - min) - } else if &green == &max { + } else if green == max { Number::from(2) + (blue - red) / (max - min) } else { Number::from(4) + (red - green) / (max - min) @@ -68,7 +68,7 @@ impl Color { } /// Calculate saturation from RGBA values - /// Algorithm adapted from http://www.niwa.nu/2013/05/math-behind-colorspace-conversions-rgb-hsl/ + /// Algorithm adapted from pub fn saturation(&self) -> Number { let red = self.red.clone() / Number::from(255); let green = self.green.clone() / Number::from(255); @@ -77,18 +77,22 @@ impl Color { let min = red.clone().min(green.clone().min(blue.clone())); let max = red.max(green.max(blue)); - if &min == &max { + if min == max { return Number::from(0); } let d = max.clone() - min.clone(); let mm = max + min; - let s = d / if mm > Number::from(1) { Number::from(2) - mm } else { mm }; + let s = d / if mm > Number::from(1) { + Number::from(2) - mm + } else { + mm + }; (s * Number::from(100)).round() } /// Calculate luminance from RGBA values - /// Algorithm adapted from http://www.niwa.nu/2013/05/math-behind-colorspace-conversions-rgb-hsl/ + /// Algorithm adapted from pub fn lightness(&self) -> Number { let red = self.red.clone() / Number::from(255); let green = self.green.clone() / Number::from(255); @@ -103,7 +107,7 @@ impl Color { } /// Create RGBA representation from HSLA values - /// Algorithm adapted from http://www.niwa.nu/2013/05/math-behind-colorspace-conversions-rgb-hsl/ + /// Algorithm adapted from pub fn from_hsla( mut hue: Number, mut saturation: Number, @@ -131,26 +135,26 @@ impl Color { } else { luminance }; - let val = luminance.clone() * Number::from(255); + let val = luminance * Number::from(255); let repr = repr(&val, &val, &val, &alpha); return Color { red: val.clone(), green: val.clone(), blue: val, - alpha: Number::from(alpha), + alpha, repr, }; } let temporary_1 = if luminance.clone() < Number::ratio(1, 2) { luminance.clone() * (Number::from(1) + saturation) } else { - luminance.clone() + saturation.clone() - luminance.clone() * saturation.clone() + luminance.clone() + saturation.clone() - luminance.clone() * saturation }; - let temporary_2 = Number::from(2) * luminance.clone() - temporary_1.clone(); + let temporary_2 = Number::from(2) * luminance - temporary_1.clone(); hue /= Number::from(360); let mut temporary_r = hue.clone() + Number::ratio(1, 3); let mut temporary_g = hue.clone(); - let mut temporary_b = hue.clone() - Number::ratio(1, 3); + let mut temporary_b = hue - Number::ratio(1, 3); macro_rules! clamp_temp { ($temp:ident) => { @@ -241,9 +245,9 @@ impl Color { } else { weight }; - let red = Number::from(std::u8::MAX) - (Number::from(self.red.clone()) * weight.clone()); - let green = Number::from(std::u8::MAX) - (Number::from(self.green.clone()) * weight.clone()); - let blue = Number::from(std::u8::MAX) - (Number::from(self.blue.clone()) * weight); + let red = Number::from(u8::max_value()) - self.red.clone() * weight.clone(); + let green = Number::from(u8::max_value()) - self.green.clone() * weight.clone(); + let blue = Number::from(u8::max_value()) - self.blue.clone() * weight; let repr = repr(&red, &green, &blue, &self.alpha); Color { red, diff --git a/src/color/name.rs b/src/color/name.rs index 737d24d..b5aa02c 100644 --- a/src/color/name.rs +++ b/src/color/name.rs @@ -646,8 +646,7 @@ impl ColorName { Self::DarkBlue => Color::new(0x00, 0x00, 0x8B, 0xFF, repr), Self::DarkCyan => Color::new(0x00, 0x8B, 0x8B, 0xFF, repr), Self::DarkGoldenRod => Color::new(0xB8, 0x86, 0x0B, 0xFF, repr), - Self::DarkGray => Color::new(0xA9, 0xA9, 0xA9, 0xFF, repr), - Self::DarkGrey => Color::new(0xA9, 0xA9, 0xA9, 0xFF, repr), + Self::DarkGray | Self::DarkGrey => Color::new(0xA9, 0xA9, 0xA9, 0xFF, repr), Self::DarkGreen => Color::new(0x00, 0x64, 0x00, 0xFF, repr), Self::DarkKhaki => Color::new(0xBD, 0xB7, 0x6B, 0xFF, repr), Self::DarkMagenta => Color::new(0x8B, 0x00, 0x8B, 0xFF, repr), @@ -658,14 +657,12 @@ impl ColorName { Self::DarkSalmon => Color::new(0xE9, 0x96, 0x7A, 0xFF, repr), Self::DarkSeaGreen => Color::new(0x8F, 0xBC, 0x8F, 0xFF, repr), Self::DarkSlateBlue => Color::new(0x48, 0x3D, 0x8B, 0xFF, repr), - Self::DarkSlateGray => Color::new(0x2F, 0x4F, 0x4F, 0xFF, repr), - Self::DarkSlateGrey => Color::new(0x2F, 0x4F, 0x4F, 0xFF, repr), + Self::DarkSlateGray | Self::DarkSlateGrey => Color::new(0x2F, 0x4F, 0x4F, 0xFF, repr), Self::DarkTurquoise => Color::new(0x00, 0xCE, 0xD1, 0xFF, repr), Self::DarkViolet => Color::new(0x94, 0x00, 0xD3, 0xFF, repr), Self::DeepPink => Color::new(0xFF, 0x14, 0x93, 0xFF, repr), Self::DeepSkyBlue => Color::new(0x00, 0xBF, 0xFF, 0xFF, repr), - Self::DimGray => Color::new(0x69, 0x69, 0x69, 0xFF, repr), - Self::DimGrey => Color::new(0x69, 0x69, 0x69, 0xFF, repr), + Self::DimGray | Self::DimGrey => Color::new(0x69, 0x69, 0x69, 0xFF, repr), Self::DodgerBlue => Color::new(0x1E, 0x90, 0xFF, 0xFF, repr), Self::FireBrick => Color::new(0xB2, 0x22, 0x22, 0xFF, repr), Self::FloralWhite => Color::new(0xFF, 0xFA, 0xF0, 0xFF, repr), @@ -675,8 +672,7 @@ impl ColorName { Self::GhostWhite => Color::new(0xF8, 0xF8, 0xFF, 0xFF, repr), Self::Gold => Color::new(0xFF, 0xD7, 0x00, 0xFF, repr), Self::GoldenRod => Color::new(0xDA, 0xA5, 0x20, 0xFF, repr), - Self::Gray => Color::new(0x80, 0x80, 0x80, 0xFF, repr), - Self::Grey => Color::new(0x80, 0x80, 0x80, 0xFF, repr), + Self::Gray | Self::Grey => Color::new(0x80, 0x80, 0x80, 0xFF, repr), Self::Green => Color::new(0x00, 0x80, 0x00, 0xFF, repr), Self::GreenYellow => Color::new(0xAD, 0xFF, 0x2F, 0xFF, repr), Self::HoneyDew => Color::new(0xF0, 0xFF, 0xF0, 0xFF, repr), @@ -700,8 +696,7 @@ impl ColorName { Self::LightSalmon => Color::new(0xFF, 0xA0, 0x7A, 0xFF, repr), Self::LightSeaGreen => Color::new(0x20, 0xB2, 0xAA, 0xFF, repr), Self::LightSkyBlue => Color::new(0x87, 0xCE, 0xFA, 0xFF, repr), - Self::LightSlateGray => Color::new(0x77, 0x88, 0x99, 0xFF, repr), - Self::LightSlateGrey => Color::new(0x77, 0x88, 0x99, 0xFF, repr), + Self::LightSlateGray | Self::LightSlateGrey => Color::new(0x77, 0x88, 0x99, 0xFF, repr), Self::LightSteelBlue => Color::new(0xB0, 0xC4, 0xDE, 0xFF, repr), Self::LightYellow => Color::new(0xFF, 0xFF, 0xE0, 0xFF, repr), Self::Lime => Color::new(0x00, 0xFF, 0x00, 0xFF, repr), @@ -754,8 +749,7 @@ impl ColorName { Self::Silver => Color::new(0xC0, 0xC0, 0xC0, 0xFF, repr), Self::SkyBlue => Color::new(0x87, 0xCE, 0xEB, 0xFF, repr), Self::SlateBlue => Color::new(0x6A, 0x5A, 0xCD, 0xFF, repr), - Self::SlateGray => Color::new(0x70, 0x80, 0x90, 0xFF, repr), - Self::SlateGrey => Color::new(0x70, 0x80, 0x90, 0xFF, repr), + Self::SlateGray | Self::SlateGrey => Color::new(0x70, 0x80, 0x90, 0xFF, repr), Self::Snow => Color::new(0xFF, 0xFA, 0xFA, 0xFF, repr), Self::SpringGreen => Color::new(0x00, 0xFF, 0x7F, 0xFF, repr), Self::SteelBlue => Color::new(0x46, 0x82, 0xB4, 0xFF, repr), diff --git a/src/mixin.rs b/src/mixin.rs index 0c95d4d..21900d5 100644 --- a/src/mixin.rs +++ b/src/mixin.rs @@ -96,7 +96,7 @@ impl Mixin { while let Some(expr) = eat_expr(&mut self.body, &self.scope, super_selector)? { match expr { Expr::Style(s) => stmts.push(Stmt::Style(s)), - Expr::Styles(s) => stmts.extend(s.into_iter().map(|s| Stmt::Style(s))), + Expr::Styles(s) => stmts.extend(s.into_iter().map(Stmt::Style)), Expr::Include(s) => stmts.extend(s), Expr::MixinDecl(..) | Expr::FunctionDecl(..) | Expr::Debug(..) | Expr::Warn(..) => { todo!() diff --git a/src/selector.rs b/src/selector.rs index dda67ab..093a82a 100644 --- a/src/selector.rs +++ b/src/selector.rs @@ -295,13 +295,12 @@ impl<'a> SelectorParser<'a> { }), TokenKind::Interpolation => { self.is_interpolated = true; - let v = self.tokens_to_selectors( + self.tokens_to_selectors( &mut parse_interpolation(tokens, self.scope) .into_iter() .peekable(), ); self.is_interpolated = false; - v } TokenKind::Attribute(attr) => self.selectors.push(SelectorKind::Attribute(attr)), _ => todo!("unimplemented selector"), diff --git a/src/style.rs b/src/style.rs index 42f2f2b..c40ad57 100644 --- a/src/style.rs +++ b/src/style.rs @@ -53,7 +53,7 @@ struct StyleParser<'a> { } impl<'a> StyleParser<'a> { - fn new(scope: &'a Scope, super_selector: &'a Selector) -> Self { + const fn new(scope: &'a Scope, super_selector: &'a Selector) -> Self { StyleParser { scope, super_selector, diff --git a/src/value/ops.rs b/src/value/ops.rs index 6ed12fd..da214b4 100644 --- a/src/value/ops.rs +++ b/src/value/ops.rs @@ -161,7 +161,7 @@ impl Mul for Value { match self { Self::Null => todo!(), Self::Dimension(num, unit) => match other { - Self::Dimension(num2, unit2) => Value::Dimension(num - num2, unit), + Self::Dimension(num2, unit2) => Value::Dimension(num * num2, unit), _ => todo!(), }, Self::BinaryOp(..) | Self::Paren(..) => self.eval(), diff --git a/src/value/parse.rs b/src/value/parse.rs index e682bcc..395e7ae 100644 --- a/src/value/parse.rs +++ b/src/value/parse.rs @@ -167,26 +167,25 @@ impl Value { } else { Unit::None }; - let n = match val.parse::() { + let n = if let Ok(v) = val.parse::() { // the number is an integer! - Ok(v) => v, - // the number is floating point - Err(_) => { - let mut num = String::new(); - let mut chars = val.chars().into_iter(); - let mut num_dec = 0; - while let Some(c) = chars.next() { - if c == '.' { - break; - } - num.push(c); + v + // the number is floating point + } else { + let mut num = String::new(); + let mut chars = val.chars(); + let mut num_dec = 0; + while let Some(c) = chars.next() { + if c == '.' { + break; } - for c in chars { - num_dec += 1; - num.push(c); - } - BigRational::new(num.parse().unwrap(), pow(BigInt::from(10), num_dec)) + num.push(c); } + for c in chars { + num_dec += 1; + num.push(c); + } + BigRational::new(num.parse().unwrap(), pow(BigInt::from(10), num_dec)) }; Some(Value::Dimension(Number::new(n), unit)) }