elvis_core/style/
column.rs

1//! Column Styles
2use crate::{
3    style::Style,
4    value::{layouts::MultiColumnLineStyle, Color, Unit},
5};
6use elvis_core_support::Setter;
7
8/// `Multicolumn` Style
9#[derive(Clone, Copy, Default, Setter)]
10pub struct MultiColumnStyle {
11    /// Column color
12    pub color: Option<Color>,
13    /// Column counts
14    pub count: Option<Unit>,
15    /// Column gap
16    pub gap: Option<Unit>,
17    /// Column line style
18    pub style: Option<MultiColumnLineStyle>,
19}
20
21impl Into<Vec<Style>> for MultiColumnStyle {
22    fn into(self) -> Vec<Style> {
23        let mut styles: Vec<Style> = vec![];
24        option_to_style! {
25            styles, [
26                (ColumnCount, self.count),
27                (ColumnGap, self.gap),
28                (ColumnRuleColor, self.color),
29                (ColumnRuleStyle, self.style),
30            ],
31        }
32
33        styles
34    }
35}