1use crate::{
3 style::Style,
4 value::{
5 layouts::{Alignment, FlexBasis, FlexDirection, FlexWrap},
6 Unit,
7 },
8};
9use elvis_core_support::Setter;
10
11#[derive(Clone, Default, Setter)]
13pub struct FlexStyle {
14 pub align: Option<Alignment>,
16 pub basis: Option<FlexBasis>,
18 pub direction: Option<FlexDirection>,
20 #[skip]
22 pub grow: Option<Unit>,
23 #[skip]
25 pub order: Option<Unit>,
26 pub wrap: Option<FlexWrap>,
28}
29
30impl FlexStyle {
31 pub fn grow(mut self, grow: i64) -> FlexStyle {
33 self.grow = Some(Unit::None(grow as f64));
34 self
35 }
36
37 pub fn order(mut self, order: i64) -> FlexStyle {
39 self.order = Some(Unit::None(order as f64));
40 self
41 }
42}
43
44impl Into<Vec<Style>> for FlexStyle {
45 fn into(self) -> Vec<Style> {
46 let mut styles: Vec<Style> = vec![];
47
48 if let Some(v) = self.align {
59 styles.append(&mut v.into());
60 }
61
62 styles
63 }
64}