30 lines
596 B
Rust
30 lines
596 B
Rust
/// Color struct.
|
|
///
|
|
/// Represents a color with RGB values from 0 to 255.
|
|
#[derive(Copy, Clone)]
|
|
pub struct Color {
|
|
r: u8,
|
|
g: u8,
|
|
b: u8,
|
|
}
|
|
|
|
impl Color {
|
|
|
|
/// Constructor.
|
|
///
|
|
/// The color channels must be between 0 and 255.
|
|
pub fn from(r: u8, g: u8, b: u8) -> Color {
|
|
Color {
|
|
r,
|
|
g,
|
|
b,
|
|
}
|
|
}
|
|
|
|
/// Get a hexadecimal representation of the color,
|
|
/// such as `FFFFFF` for white and `FF0000` for red.
|
|
pub fn as_hex(&self) -> String {
|
|
format!("{:02X}{:02X}{:02X}", self.r, self.g, self.b)
|
|
}
|
|
}
|