csvpp 0.4.1

Compile csvpp source code to a target spreadsheet format
Documentation
use super::{Modifier, RowModifier};

#[allow(clippy::from_over_into)]
impl Into<Modifier> for RowModifier {
    fn into(self) -> Modifier {
        Modifier {
            border_color: self.border_color,
            border_style: self.border_style,
            borders: self.borders.clone(),
            color: self.color,
            data_validation: self.data_validation,
            font_color: self.font_color,
            font_family: self.font_family,
            font_size: self.font_size,
            formats: self.formats.clone(),
            horizontal_align: self.horizontal_align,
            lock: self.lock,
            note: self.note,
            number_format: self.number_format,
            var: self.var,
            vertical_align: self.vertical_align,
        }
    }
}

#[allow(clippy::from_over_into)]
impl RowModifier {
    pub(crate) fn into_without_var(self) -> Modifier {
        let mut modifier: Modifier = self.into();
        modifier.var = None;
        modifier
    }
}

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

    #[test]
    fn into() {
        let row_modifier = RowModifier {
            border_color: Some(Rgb::new(0, 0, 255)),
            note: Some("Test note".to_string()),
            font_size: Some(20),
            var: Some("foo".to_string()),
            ..Default::default()
        };
        let modifier: Modifier = row_modifier.into();

        assert_eq!(modifier.note, Some("Test note".to_string()));
        assert_eq!(modifier.font_size, Some(20));
        assert_eq!(modifier.border_color, Some(Rgb::new(0, 0, 255)));
        assert_eq!(modifier.var, Some("foo".to_string()));
    }

    #[test]
    fn into_without_var() {
        let row_modifier = RowModifier {
            border_color: Some(Rgb::new(0, 0, 255)),
            note: Some("Test note".to_string()),
            font_size: Some(20),
            var: Some("foo".to_string()),
            ..Default::default()
        };
        let modifier: Modifier = row_modifier.into_without_var();

        assert_eq!(modifier.note, Some("Test note".to_string()));
        assert_eq!(modifier.font_size, Some(20));
        assert_eq!(modifier.border_color, Some(Rgb::new(0, 0, 255)));
        assert_eq!(modifier.var, None);
    }
}