use super::types::{
AlignItems, AlignSelf, Display, FlexDirection, FlexWrap, GridPlacement, GridTemplate,
JustifyContent, Position,
};
#[derive(Debug, Clone, Default, PartialEq)]
pub struct LayoutStyle {
pub display: Display,
pub position: Position,
pub flex_direction: FlexDirection,
pub justify_content: JustifyContent,
pub align_items: AlignItems,
pub flex_grow: f32,
pub flex_wrap: FlexWrap,
pub align_self: AlignSelf,
pub order: i16,
pub gap: u16,
pub column_gap: Option<u16>,
pub row_gap: Option<u16>,
pub grid_template_columns: GridTemplate,
pub grid_template_rows: GridTemplate,
pub grid_column: GridPlacement,
pub grid_row: GridPlacement,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_layout_style_default() {
let layout = LayoutStyle::default();
assert_eq!(layout.display, Display::default());
assert_eq!(layout.position, Position::default());
assert_eq!(layout.flex_direction, FlexDirection::default());
assert_eq!(layout.justify_content, JustifyContent::default());
assert_eq!(layout.align_items, AlignItems::default());
assert_eq!(layout.gap, 0);
assert_eq!(layout.column_gap, None);
assert_eq!(layout.row_gap, None);
}
#[test]
fn test_layout_style_clone() {
let mut layout = LayoutStyle::default();
layout.gap = 10;
let cloned = layout.clone();
assert_eq!(cloned.gap, 10);
}
#[test]
fn test_layout_style_partial_eq() {
let layout1 = LayoutStyle::default();
let layout2 = LayoutStyle::default();
assert_eq!(layout1, layout2);
}
#[test]
fn test_layout_style_not_equal() {
let mut layout1 = LayoutStyle::default();
layout1.gap = 10;
let layout2 = LayoutStyle::default();
assert_ne!(layout1, layout2);
}
#[test]
fn test_layout_style_grid_template() {
let mut layout = LayoutStyle::default();
layout.grid_template_columns = GridTemplate::fr(&[1.0, 2.0]);
assert_eq!(layout.grid_template_columns.tracks.len(), 2);
}
#[test]
fn test_layout_style_grid_placement() {
let mut layout = LayoutStyle::default();
layout.grid_column = GridPlacement::span(2);
layout.grid_row = GridPlacement::from_to(1, 3);
assert_eq!(layout.grid_column, GridPlacement::span(2));
assert_eq!(layout.grid_row, GridPlacement::from_to(1, 3));
}
#[test]
fn test_layout_style_debug() {
let layout = LayoutStyle::default();
let debug_str = format!("{:?}", layout);
assert!(debug_str.contains("LayoutStyle"));
}
}