freya-node-state 0.2.1

Internal Node states for Dioxus RealDOM elements used in Freya.
Documentation
use freya_node_state::Parse;
use torin::geometry::Length;
use torin::size::{DynamicCalculation, Size};

#[test]
fn parse_pixel_size() {
    let size = Size::parse("123");
    assert_eq!(size, Ok(Size::Pixels(Length::new(123.0))));
}

#[test]
fn parse_relative_size() {
    let size = Size::parse("78.123%");
    assert_eq!(size, Ok(Size::Percentage(Length::new(78.123))));
}

#[test]
fn parse_auto_size() {
    let size = Size::parse("auto");
    assert_eq!(size, Ok(Size::Inner));
}

#[test]
fn parse_calc_size() {
    let size = Size::parse("calc(90% - 5% * 123.6)");
    assert_eq!(
        size,
        Ok(Size::DynamicCalculations(Box::new(vec![
            DynamicCalculation::Percentage(90.0),
            DynamicCalculation::Sub,
            DynamicCalculation::Percentage(5.0),
            DynamicCalculation::Mul,
            DynamicCalculation::Pixels(123.6)
        ])))
    );
}