to_string() for Colour
This commit is contained in:
parent
eb8fd556e4
commit
b36a1a7d24
|
@ -1,3 +1,5 @@
|
||||||
|
use std::fmt;
|
||||||
|
|
||||||
use serde_derive::{Serialize, Deserialize};
|
use serde_derive::{Serialize, Deserialize};
|
||||||
|
|
||||||
#[derive(Debug, Eq, PartialEq, Serialize, Deserialize)]
|
#[derive(Debug, Eq, PartialEq, Serialize, Deserialize)]
|
||||||
|
@ -24,6 +26,12 @@ impl From<Vec<u8>> for Colour {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl fmt::Display for Colour {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
|
write!(f, "#{}", hex::encode([self.red, self.green, self.blue]))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl Into<Vec<u8>> for Colour {
|
impl Into<Vec<u8>> for Colour {
|
||||||
fn into(self) -> Vec<u8> {
|
fn into(self) -> Vec<u8> {
|
||||||
vec![self.red, self.green, self.blue]
|
vec![self.red, self.green, self.blue]
|
||||||
|
@ -43,6 +51,13 @@ mod test {
|
||||||
assert_eq!(Colour::from("0xa0b0c0"), Colour { red: 160, green: 176, blue: 192 });
|
assert_eq!(Colour::from("0xa0b0c0"), Colour { red: 160, green: 176, blue: 192 });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_colour_to_hex() {
|
||||||
|
assert_eq!(Colour { red: 255, green: 255, blue: 255 }.to_string(), "#ffffff");
|
||||||
|
assert_eq!(Colour { red: 0, green: 0, blue: 0 }.to_string(), "#000000");
|
||||||
|
assert_eq!(Colour { red: 0, green: 128, blue: 64 }.to_string(), "#008040");
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_colour_from_intermediate() {
|
fn test_colour_from_intermediate() {
|
||||||
let output = Colour::from(vec![64, 128, 192]);
|
let output = Colour::from(vec![64, 128, 192]);
|
||||||
|
|
Loading…
Reference in New Issue