pub mod constraints;
pub mod dsl_v2;
pub mod named_parser;
pub mod parser;
pub mod ratio_solver;
pub mod solver;
pub use parser::parse;
pub use solver::{Solver, SolvedItem, ItemKind};
pub use ratio_solver::{Panel, drag, normalize, check_sum};
pub use dsl_v2::{to_panels, NamedPanel, SplitDir};
pub use named_parser::parse_named;
pub fn build(dsl: &str, win_w: f32, win_h: f32) -> Vec<SolvedItem> {
let tree = parse(dsl);
Solver::new(win_w, win_h).solve(&tree)
}
pub fn build_v2(dsl: &str) -> Vec<Panel> {
let named = parse_named(dsl);
to_panels(&named)
}