use ratatui::prelude::*;
use std::rc::Rc;
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Layers {
pub zero: Rc<[Rect]>,
pub one: Rc<[Rect]>,
pub left: Rc<[Rect]>,
pub right: Rc<[Rect]>,
}
impl Layers {
pub fn new(area: Rect) -> Self {
let zero = Layout::default()
.direction(Direction::Vertical)
.constraints(vec![Constraint::Max(2), Constraint::Min(1)])
.split(area.inner(&Margin {
horizontal: 1,
vertical: 1,
}));
let one = Layout::default()
.direction(Direction::Horizontal)
.constraints(vec![Constraint::Ratio(1, 2), Constraint::Ratio(1, 2)])
.split(zero[1]);
let left = Layout::default()
.direction(Direction::Vertical)
.constraints(vec![Constraint::Min(10), Constraint::Min(0)])
.split(one[0]);
let right = Layout::default()
.direction(Direction::Vertical)
.constraints(vec![
Constraint::Min(5),
Constraint::Min(5),
Constraint::Min(0),
])
.split(one[1]);
Layers {
zero,
one,
left,
right,
}
}
}