1pub trait Capacity: Clone + Copy {
2 fn capacity(&self) -> usize;
3}
4
5#[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#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash)]
17pub struct DynCap(pub(super) usize);
18
19impl DynCap {
20 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}