async_ringbuf/
alias.rs

1use crate::{
2    rb::AsyncRb,
3    wrap::{AsyncCons, AsyncProd},
4};
5#[cfg(feature = "alloc")]
6use alloc::sync::Arc;
7use ringbuf::{storage::Array, SharedRb};
8#[cfg(feature = "alloc")]
9use ringbuf::{storage::Heap, HeapRb};
10
11#[cfg(feature = "alloc")]
12pub type AsyncHeapRb<T> = AsyncRb<Heap<T>>;
13#[cfg(feature = "alloc")]
14pub type AsyncHeapProd<T> = AsyncProd<Arc<AsyncHeapRb<T>>>;
15#[cfg(feature = "alloc")]
16pub type AsyncHeapCons<T> = AsyncCons<Arc<AsyncHeapRb<T>>>;
17
18#[cfg(feature = "alloc")]
19impl<T> AsyncHeapRb<T> {
20    pub fn new(cap: usize) -> Self {
21        Self::from(HeapRb::new(cap))
22    }
23}
24
25pub type AsyncStaticRb<T, const N: usize> = AsyncRb<Array<T, N>>;
26pub type AsyncStaticProd<'a, T, const N: usize> = AsyncProd<&'a AsyncStaticRb<T, N>>;
27pub type AsyncStaticCons<'a, T, const N: usize> = AsyncCons<&'a AsyncStaticRb<T, N>>;
28
29impl<T, const N: usize> Default for AsyncRb<Array<T, N>> {
30    fn default() -> Self {
31        AsyncRb::from(SharedRb::default())
32    }
33}