t-rec 0.7.10

Blazingly fast terminal recorder that generates animated gif images for the web written in rust.
#[derive(Debug, PartialEq, Eq)]
pub struct Margin {
    pub top: u16,
    pub right: u16,
    pub bottom: u16,
    pub left: u16,
}

impl Margin {
    pub fn new(top: u16, right: u16, bottom: u16, left: u16) -> Self {
        Self {
            top,
            right,
            bottom,
            left,
        }
    }

    pub fn new_equal(margin: u16) -> Self {
        Self::new(margin, margin, margin, margin)
    }

    pub fn zero() -> Self {
        Self::new_equal(0)
    }

    pub fn is_zero(&self) -> bool {
        self.top == 0
            && self.right == self.left
            && self.left == self.bottom
            && self.bottom == self.top
    }
}

#[cfg(test)]
mod test {
    use super::*;

    #[test]
    fn margin_new() {
        let m = Margin::new(1, 2, 3, 4);
        assert_eq!(m.top, 1);
        assert_eq!(m.right, 2);
        assert_eq!(m.bottom, 3);
        assert_eq!(m.left, 4);
    }

    #[test]
    fn margin_new_equal() {
        let m = Margin::new_equal(1);
        assert_eq!(m.top, 1);
        assert_eq!(m.right, 1);
        assert_eq!(m.bottom, 1);
        assert_eq!(m.left, 1);
    }

    #[test]
    fn margin_zero() {
        let m = Margin::zero();
        assert_eq!(m.top, 0);
        assert_eq!(m.right, 0);
        assert_eq!(m.bottom, 0);
        assert_eq!(m.left, 0);
        assert!(m.is_zero());
    }
}