• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //! Helpers for use in unit tests within the grid module
2 use super::super::OriginZeroLine;
3 use crate::prelude::*;
4 use crate::style::{Dimension, GridPlacement, Style};
5 
6 pub(crate) trait CreateParentTestNode {
into_grid(self) -> Style7     fn into_grid(self) -> Style;
8 }
9 impl CreateParentTestNode for (f32, f32, i32, i32) {
into_grid(self) -> Style10     fn into_grid(self) -> Style {
11         Style {
12             display: Display::Grid,
13             size: Size { width: Dimension::Length(self.0), height: Dimension::Length(self.1) },
14             grid_template_columns: vec![fr(1f32); self.2 as usize],
15             grid_template_rows: vec![fr(1f32); self.3 as usize],
16             ..Default::default()
17         }
18     }
19 }
20 pub(crate) trait CreateChildTestNode {
into_grid_child(self) -> Style21     fn into_grid_child(self) -> Style;
22 }
23 impl CreateChildTestNode for (GridPlacement, GridPlacement, GridPlacement, GridPlacement) {
into_grid_child(self) -> Style24     fn into_grid_child(self) -> Style {
25         Style {
26             display: Display::Grid,
27             grid_column: Line { start: self.0, end: self.1 },
28             grid_row: Line { start: self.2, end: self.3 },
29             ..Default::default()
30         }
31     }
32 }
33 
34 pub(crate) trait CreateExpectedPlacement {
into_oz(self) -> (OriginZeroLine, OriginZeroLine, OriginZeroLine, OriginZeroLine)35     fn into_oz(self) -> (OriginZeroLine, OriginZeroLine, OriginZeroLine, OriginZeroLine);
36 }
37 impl CreateExpectedPlacement for (i16, i16, i16, i16) {
into_oz(self) -> (OriginZeroLine, OriginZeroLine, OriginZeroLine, OriginZeroLine)38     fn into_oz(self) -> (OriginZeroLine, OriginZeroLine, OriginZeroLine, OriginZeroLine) {
39         (OriginZeroLine(self.0), OriginZeroLine(self.1), OriginZeroLine(self.2), OriginZeroLine(self.3))
40     }
41 }
42