Skip to content

Commit

Permalink
refactor!: change mix fn signature
Browse files Browse the repository at this point in the history
  • Loading branch information
JiatLn committed May 15, 2023
1 parent ed78104 commit ee46e1e
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
2 changes: 1 addition & 1 deletion docs/color_generator.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ use std::str::FromStr;

let color1 = Color::from_str("#998099").unwrap();
let color2 = Color::from_str("midnightblue").unwrap();
let color3 = Color::mix(color1, color2, 0.5).unwrap();
let color3 = Color::mix(&color1, &color2, 0.5).unwrap();
color3.hex(); // "#594d85"
```

Expand Down
16 changes: 8 additions & 8 deletions src/color_generator/mix.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ impl Color {
///
/// let color1 = Color::from_str("#998099").unwrap();
/// let color2 = Color::from_str("midnightblue").unwrap();
/// let color3 = Color::mix(color1, color2, 0.5).unwrap();
/// let color3 = Color::mix(&color1, &color2, 0.5).unwrap();
/// assert_eq!(color3.hex(), "#594d85");
/// ```
pub fn mix(color1: Color, color2: Color, weight: f64) -> Result<Color> {
pub fn mix(color1: &Color, color2: &Color, weight: f64) -> Result<Self> {
if !(0.0..=1.0).contains(&weight) {
bail!("weight must be between 0.0 and 1.0");
}
Expand All @@ -44,27 +44,27 @@ mod tests {
let color1 = Color::from_str("#003366").unwrap();
let color2 = Color::from_str("#d2e1dd").unwrap();

let color3 = Color::mix(color1, color2, 0.5).unwrap();
let color3 = Color::mix(&color1, &color2, 0.5).unwrap();
assert_eq!(color3.hex(), "#698aa2");

let color4 = Color::mix(color1, color2, 0.25).unwrap();
let color4 = Color::mix(&color1, &color2, 0.25).unwrap();
assert_eq!(color4.hex(), "#9eb6bf");

let color5 = Color::mix(color1, color2, 0.75).unwrap();
let color5 = Color::mix(&color1, &color2, 0.75).unwrap();
assert_eq!(color5.hex(), "#355f84");

let color6 = Color::mix(color1, color2, 0.0).unwrap();
let color6 = Color::mix(&color1, &color2, 0.0).unwrap();
assert_eq!(color6.hex(), "#d2e1dd");

let color7 = Color::mix(color1, color2, 1.0).unwrap();
let color7 = Color::mix(&color1, &color2, 1.0).unwrap();
assert_eq!(color7.hex(), "#003366");
}

#[test]
fn test_mix_error() {
let color1 = Color::from_str("#003366").unwrap();
let color2 = Color::from_str("#d2e1dd").unwrap();
let result = Color::mix(color1, color2, 1.1);
let result = Color::mix(&color1, &color2, 1.1);
assert!(result.is_err());
}
}

0 comments on commit ee46e1e

Please sign in to comment.