X-Git-Url: https://git.euphorik.ch/?a=blobdiff_plain;f=src%2Frgb.rs;h=a6217c792e6059e7f71e8f0dccd143e28e584bdf;hb=HEAD;hp=de1161a5fbe1c33a186b1fca611f2f6a9de84a4f;hpb=cbe5e6d643cafbb36dc0e2019651900a0623938a;p=temp2RGB.git diff --git a/src/rgb.rs b/src/rgb.rs index de1161a..9152459 100644 --- a/src/rgb.rs +++ b/src/rgb.rs @@ -1,17 +1,17 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Copy, Clone, Debug, Deserialize, Serialize)] -pub struct RGB { - pub red: u8, - pub green: u8, - pub blue: u8, -} - -// 'value' is between 0 and 1. -pub fn linear_interpolation(color1: RGB, color2: RGB, value: f32) -> RGB { - let red = (color1.red as f32 + (color2.red as f32 - color1.red as f32) * value) as u8; - let green = (color1.green as f32 + (color2.green as f32 - color1.green as f32) * value) as u8; - let blue = (color1.blue as f32 + (color2.blue as f32 - color1.blue as f32) * value) as u8; - - RGB { red, green, blue } -} +use serde::{Deserialize, Serialize}; + +#[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq)] +pub struct Rgb { + pub red: u8, + pub green: u8, + pub blue: u8, +} + +// 'value' is between 0 and 1. +pub fn linear_interpolation(color1: Rgb, color2: Rgb, value: f32) -> Rgb { + let red = (color1.red as f32 + (color2.red as f32 - color1.red as f32) * value) as u8; + let green = (color1.green as f32 + (color2.green as f32 - color1.green as f32) * value) as u8; + let blue = (color1.blue as f32 + (color2.blue as f32 - color1.blue as f32) * value) as u8; + + Rgb { red, green, blue } +}