use std::collections::BTreeMap;
use crate::NodeName;
#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub struct Layout(pub(crate) BTreeMap<NodeName, (i32, i32)>);
impl Layout {
pub fn get(&self, name: &str) -> Option<(i32, i32)> {
if name.is_ascii() {
return self.0.get(name).copied();
}
self.0.get(&NodeName::new(name)).copied()
}
pub fn set(&mut self, name: NodeName, at: (i32, i32)) {
self.0.insert(name, at);
}
pub fn iter(&self) -> impl Iterator<Item = (&NodeName, (i32, i32))> {
self.0.iter().map(|(name, at)| (name, *at))
}
pub fn is_empty(&self) -> bool {
self.0.is_empty()
}
}