1#[cfg(feature = "alloc")]
2use super::storage::Heap;
3use super::{
4 rb::SharedRb,
5 storage::Array,
6 wrap::{CachingCons, CachingProd},
7};
8
9#[cfg(all(feature = "alloc", not(feature = "portable-atomic")))]
10pub use alloc::sync::Arc;
11#[cfg(all(feature = "alloc", feature = "portable-atomic"))]
12pub use portable_atomic_util::Arc;
13
14pub type StaticRb<T, const N: usize> = SharedRb<Array<T, N>>;
18
19pub type StaticProd<'a, T, const N: usize> = CachingProd<&'a StaticRb<T, N>>;
21
22pub type StaticCons<'a, T, const N: usize> = CachingCons<&'a StaticRb<T, N>>;
24
25#[cfg(feature = "alloc")]
27pub type HeapRb<T> = SharedRb<Heap<T>>;
28
29#[cfg(feature = "alloc")]
30pub type HeapProd<T> = CachingProd<Arc<HeapRb<T>>>;
32
33#[cfg(feature = "alloc")]
34pub type HeapCons<T> = CachingCons<Arc<HeapRb<T>>>;