#[cfg(feature = "alloc")]
use super::storage::Heap;
use super::{
rb::SharedRb,
storage::Array,
wrap::{CachingCons, CachingProd},
};
#[cfg(feature = "alloc")]
use alloc::sync::Arc;
pub type StaticRb<T, const N: usize> = SharedRb<Array<T, N>>;
pub type StaticProd<'a, T, const N: usize> = CachingProd<&'a StaticRb<T, N>>;
pub type StaticCons<'a, T, const N: usize> = CachingCons<&'a StaticRb<T, N>>;
#[cfg(feature = "alloc")]
pub type HeapRb<T> = SharedRb<Heap<T>>;
#[cfg(feature = "alloc")]
pub type HeapProd<T> = CachingProd<Arc<HeapRb<T>>>;
#[cfg(feature = "alloc")]
pub type HeapCons<T> = CachingCons<Arc<HeapRb<T>>>;