blob: 9909c661d614e63421b42a5081faa5ee35da59e2 [file] [log] [blame]
/// PoolTableDimension is a dimension resolve strategy for [`PoolTable`]
///
/// [`PoolTable`]: crate::tables::PoolTable
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
pub struct PoolTableDimension {
width: DimensionPriority,
height: DimensionPriority,
}
impl PoolTableDimension {
/// Creates a new object.
pub fn new(width: DimensionPriority, height: DimensionPriority) -> Self {
Self { width, height }
}
/// Return a width priority.
pub fn width(&self) -> DimensionPriority {
self.width
}
/// Return a height priority.
pub fn height(&self) -> DimensionPriority {
self.height
}
}
/// A control of width/height logic for situations where we must increase some cell to align columns/row.
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
pub enum DimensionPriority {
/// Increase first cell width/height in a row/column.
First,
/// Increase last cell width/height in a row/column.
Last,
/// Increase cells width/height 1 by 1 in a row/column.
List,
}