use XY;
use vec::Vec2;
#[derive(PartialEq, Debug, Clone, Copy)]
pub struct SizeCache {
pub value: usize,
pub constrained: bool,
}
impl SizeCache {
pub fn new(value: usize, constrained: bool) -> Self {
SizeCache {
value: value,
constrained: constrained,
}
}
pub fn accept(self, request: usize) -> bool {
if request < self.value {
false
} else if request == self.value {
true
} else {
!self.constrained
}
}
pub fn build(size: Vec2, req: Vec2) -> XY<Self> {
XY::new(SizeCache::new(size.x, size.x >= req.x),
SizeCache::new(size.y, size.y >= req.y))
}
}