gioser

tawasuyu/taffy

A high performance rust-powered UI layout library

Rust 499HTML 238Markdown 7TOML 31442 Definitions

⎇ 42f75c6023434c27c9d6e69e2f3f3b5818ddd8e3 src/compute/grid/util/test_helpers.rs Rust · 41 lines · 1.5 KB History Who touched what raw

Rename `Points`/`points` to `Length`/`length` in many APIs (#459) 55abeaf2e · Simon Sapin ·

1//! Helpers for use in unit tests within the grid module
2use super::super::OriginZeroLine;
3use crate::prelude::*;
4use crate::style::{Dimension, GridPlacement, Style};
5
6pub(crate) trait CreateParentTestNode {
7    fn into_grid(self) -> Style;
8}
9impl CreateParentTestNode for (f32, f32, i32, i32) {
10    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}
20pub(crate) trait CreateChildTestNode {
21    fn into_grid_child(self) -> Style;
22}
23impl CreateChildTestNode for (GridPlacement, GridPlacement, GridPlacement, GridPlacement) {
24    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
34pub(crate) trait CreateExpectedPlacement {
35    fn into_oz(self) -> (OriginZeroLine, OriginZeroLine, OriginZeroLine, OriginZeroLine);
36}
37impl CreateExpectedPlacement for (i16, i16, i16, i16) {
38    fn into_oz(self) -> (OriginZeroLine, OriginZeroLine, OriginZeroLine, OriginZeroLine) {
39        (OriginZeroLine(self.0), OriginZeroLine(self.1), OriginZeroLine(self.2), OriginZeroLine(self.3))
40    }
41}