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}