#[derive(Debug, Clone, PartialEq)]
pub struct ConstantBorder {
pub left: u32,
pub top: u32,
pub color: [u8; 3],
}
impl ConstantBorder {
pub fn new(left: u32, top: u32, color: [u8; 3]) -> Self {
Self { left, top, color }
}
pub fn white(left: u32, top: u32) -> Self {
Self::new(left, top, [255, 255, 255])
}
pub fn black(left: u32, top: u32) -> Self {
Self::new(left, top, [0, 0, 0])
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_new() {
let border = ConstantBorder::new(1, 2, [3, 4, 5]);
assert_eq!(border.left, 1);
assert_eq!(border.top, 2);
assert_eq!(border.color, [3, 4, 5]);
}
#[test]
fn test_white() {
let border = ConstantBorder::white(1, 2);
assert_eq!(border.left, 1);
assert_eq!(border.top, 2);
assert_eq!(border.color, [255, 255, 255]);
}
#[test]
fn test_black() {
let border = ConstantBorder::black(1, 2);
assert_eq!(border.left, 1);
assert_eq!(border.top, 2);
assert_eq!(border.color, [0, 0, 0]);
}
}