ringbuf/wrap/
traits.rs

1use crate::rb::RbRef;
2
3/// Ring buffer wrapper that contains reference to the ring buffer inside.
4pub trait Wrap: AsRef<Self> + AsMut<Self> {
5    /// Ring buffer reference type.
6    type RbRef: RbRef;
7
8    /// Underlying ring buffer.
9    fn rb(&self) -> &<Self::RbRef as RbRef>::Rb {
10        self.rb_ref().rb()
11    }
12    /// Underlying ring buffer reference.
13    fn rb_ref(&self) -> &Self::RbRef;
14    /// Destructure into underlying ring buffer reference.
15    fn into_rb_ref(self) -> Self::RbRef;
16}