qutee/
bounds.rs

1pub trait Capacity: Clone + Copy {
2    fn capacity(&self) -> usize;
3}
4
5/// A Capacity known at compile time
6#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash)]
7pub struct ConstCap<const CAP: usize>;
8impl<const CAP: usize> Capacity for ConstCap<CAP> {
9    #[inline]
10    fn capacity(&self) -> usize {
11        CAP
12    }
13}
14
15/// A Capacity known at runtime
16#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash)]
17pub struct DynCap(pub(super) usize);
18
19impl DynCap {
20    /// Create a new DynCap
21    pub fn new(cap: usize) -> Self {
22        Self(cap)
23    }
24}
25
26impl Capacity for DynCap {
27    #[inline]
28    fn capacity(&self) -> usize {
29        self.0
30    }
31}