/home/runner/work/ringbuffer/ringbuffer/src/ringbuffer_trait.rs
Line | Count | Source (jump to first uncovered line) |
1 | | use core::ops::{Index, IndexMut}; |
2 | | |
3 | | #[cfg(feature = "alloc")] |
4 | | extern crate alloc; |
5 | | |
6 | | #[cfg(feature = "alloc")] |
7 | | use alloc::vec::Vec; |
8 | | |
9 | | /// `RingBuffer` is a trait defining the standard interface for all `RingBuffer` |
10 | | /// implementations ([`AllocRingBuffer`](crate::AllocRingBuffer), [`ConstGenericRingBuffer`](crate::ConstGenericRingBuffer)) |
11 | | /// |
12 | | /// This trait is not object safe, so can't be used dynamically. However it is possible to |
13 | | /// define a generic function over types implementing `RingBuffer`. |
14 | | /// |
15 | | /// # Safety |
16 | | /// Implementing this implies that the ringbuffer upholds some safety |
17 | | /// guarantees, such as returning a different value from `get_mut` any |
18 | | /// for every different index passed in. See the exact requirements |
19 | | /// in the safety comment on the next function of the mutable Iterator |
20 | | /// implementation, since these safety guarantees are necessary for |
21 | | /// [`iter_mut`](RingBuffer::iter_mut) to work |
22 | | pub unsafe trait RingBuffer<T>: |
23 | | Sized + IntoIterator<Item = T> + Extend<T> + Index<usize, Output = T> + IndexMut<usize> |
24 | | { |
25 | | /// Returns the length of the internal buffer. |
26 | | /// This length grows up to the capacity and then stops growing. |
27 | | /// This is because when the length is reached, new items are appended at the start. |
28 | 3.74M | fn len(&self) -> usize { |
29 | 3.74M | // Safety: self is a RingBuffer |
30 | 3.74M | unsafe { Self::ptr_len(self) } |
31 | 3.74M | } <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 20 | fn len(&self) -> usize { | 29 | 20 | // Safety: self is a RingBuffer | 30 | 20 | unsafe { Self::ptr_len(self) } | 31 | 20 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 6 | fn len(&self) -> usize { | 29 | 6 | // Safety: self is a RingBuffer | 30 | 6 | unsafe { Self::ptr_len(self) } | 31 | 6 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::len Line | Count | Source | 28 | 31 | fn len(&self) -> usize { | 29 | 31 | // Safety: self is a RingBuffer | 30 | 31 | unsafe { Self::ptr_len(self) } | 31 | 31 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::len Line | Count | Source | 28 | 237 | fn len(&self) -> usize { | 29 | 237 | // Safety: self is a RingBuffer | 30 | 237 | unsafe { Self::ptr_len(self) } | 31 | 237 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 21 | fn len(&self) -> usize { | 29 | 21 | // Safety: self is a RingBuffer | 30 | 21 | unsafe { Self::ptr_len(self) } | 31 | 21 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 6 | fn len(&self) -> usize { | 29 | 6 | // Safety: self is a RingBuffer | 30 | 6 | unsafe { Self::ptr_len(self) } | 31 | 6 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::len Line | Count | Source | 28 | 488 | fn len(&self) -> usize { | 29 | 488 | // Safety: self is a RingBuffer | 30 | 488 | unsafe { Self::ptr_len(self) } | 31 | 488 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 20 | fn len(&self) -> usize { | 29 | 20 | // Safety: self is a RingBuffer | 30 | 20 | unsafe { Self::ptr_len(self) } | 31 | 20 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 6 | fn len(&self) -> usize { | 29 | 6 | // Safety: self is a RingBuffer | 30 | 6 | unsafe { Self::ptr_len(self) } | 31 | 6 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::len Line | Count | Source | 28 | 31 | fn len(&self) -> usize { | 29 | 31 | // Safety: self is a RingBuffer | 30 | 31 | unsafe { Self::ptr_len(self) } | 31 | 31 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 21 | fn len(&self) -> usize { | 29 | 21 | // Safety: self is a RingBuffer | 30 | 21 | unsafe { Self::ptr_len(self) } | 31 | 21 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::len Line | Count | Source | 28 | 237 | fn len(&self) -> usize { | 29 | 237 | // Safety: self is a RingBuffer | 30 | 237 | unsafe { Self::ptr_len(self) } | 31 | 237 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 6 | fn len(&self) -> usize { | 29 | 6 | // Safety: self is a RingBuffer | 30 | 6 | unsafe { Self::ptr_len(self) } | 31 | 6 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 15.1k | fn len(&self) -> usize { | 29 | 15.1k | // Safety: self is a RingBuffer | 30 | 15.1k | unsafe { Self::ptr_len(self) } | 31 | 15.1k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::len Line | Count | Source | 28 | 21 | fn len(&self) -> usize { | 29 | 21 | // Safety: self is a RingBuffer | 30 | 21 | unsafe { Self::ptr_len(self) } | 31 | 21 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 192 | fn len(&self) -> usize { | 29 | 192 | // Safety: self is a RingBuffer | 30 | 192 | unsafe { Self::ptr_len(self) } | 31 | 192 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 70usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::len Line | Count | Source | 28 | 3.64k | fn len(&self) -> usize { | 29 | 3.64k | // Safety: self is a RingBuffer | 30 | 3.64k | unsafe { Self::ptr_len(self) } | 31 | 3.64k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 17usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::len Line | Count | Source | 28 | 1.31k | fn len(&self) -> usize { | 29 | 1.31k | // Safety: self is a RingBuffer | 30 | 1.31k | unsafe { Self::ptr_len(self) } | 31 | 1.31k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::len Line | Count | Source | 28 | 42 | fn len(&self) -> usize { | 29 | 42 | // Safety: self is a RingBuffer | 30 | 42 | unsafe { Self::ptr_len(self) } | 31 | 42 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 1.60M | fn len(&self) -> usize { | 29 | 1.60M | // Safety: self is a RingBuffer | 30 | 1.60M | unsafe { Self::ptr_len(self) } | 31 | 1.60M | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::len Line | Count | Source | 28 | 49 | fn len(&self) -> usize { | 29 | 49 | // Safety: self is a RingBuffer | 30 | 49 | unsafe { Self::ptr_len(self) } | 31 | 49 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::len Line | Count | Source | 28 | 14 | fn len(&self) -> usize { | 29 | 14 | // Safety: self is a RingBuffer | 30 | 14 | unsafe { Self::ptr_len(self) } | 31 | 14 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 99.4k | fn len(&self) -> usize { | 29 | 99.4k | // Safety: self is a RingBuffer | 30 | 99.4k | unsafe { Self::ptr_len(self) } | 31 | 99.4k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 214 | fn len(&self) -> usize { | 29 | 214 | // Safety: self is a RingBuffer | 30 | 214 | unsafe { Self::ptr_len(self) } | 31 | 214 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<ringbuffer::tests::test_dropping::Dropee, 1usize> as ringbuffer::ringbuffer_trait::RingBuffer<ringbuffer::tests::test_dropping::Dropee>>::len Line | Count | Source | 28 | 4 | fn len(&self) -> usize { | 29 | 4 | // Safety: self is a RingBuffer | 30 | 4 | unsafe { Self::ptr_len(self) } | 31 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 60 | fn len(&self) -> usize { | 29 | 60 | // Safety: self is a RingBuffer | 30 | 60 | unsafe { Self::ptr_len(self) } | 31 | 60 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::len Line | Count | Source | 28 | 6.25k | fn len(&self) -> usize { | 29 | 6.25k | // Safety: self is a RingBuffer | 30 | 6.25k | unsafe { Self::ptr_len(self) } | 31 | 6.25k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::len Line | Count | Source | 28 | 28 | fn len(&self) -> usize { | 29 | 28 | // Safety: self is a RingBuffer | 30 | 28 | unsafe { Self::ptr_len(self) } | 31 | 28 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 131 | fn len(&self) -> usize { | 29 | 131 | // Safety: self is a RingBuffer | 30 | 131 | unsafe { Self::ptr_len(self) } | 31 | 131 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 10usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::len Line | Count | Source | 28 | 101k | fn len(&self) -> usize { | 29 | 101k | // Safety: self is a RingBuffer | 30 | 101k | unsafe { Self::ptr_len(self) } | 31 | 101k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<alloc::vec::Vec<i32>> as ringbuffer::ringbuffer_trait::RingBuffer<alloc::vec::Vec<i32>>>::len Line | Count | Source | 28 | 8 | fn len(&self) -> usize { | 29 | 8 | // Safety: self is a RingBuffer | 30 | 8 | unsafe { Self::ptr_len(self) } | 31 | 8 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 1.60M | fn len(&self) -> usize { | 29 | 1.60M | // Safety: self is a RingBuffer | 30 | 1.60M | unsafe { Self::ptr_len(self) } | 31 | 1.60M | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::len Line | Count | Source | 28 | 101k | fn len(&self) -> usize { | 29 | 101k | // Safety: self is a RingBuffer | 30 | 101k | unsafe { Self::ptr_len(self) } | 31 | 101k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::len Line | Count | Source | 28 | 14 | fn len(&self) -> usize { | 29 | 14 | // Safety: self is a RingBuffer | 30 | 14 | unsafe { Self::ptr_len(self) } | 31 | 14 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<ringbuffer::tests::test_dropping::Dropee> as ringbuffer::ringbuffer_trait::RingBuffer<ringbuffer::tests::test_dropping::Dropee>>::len Line | Count | Source | 28 | 4 | fn len(&self) -> usize { | 29 | 4 | // Safety: self is a RingBuffer | 30 | 4 | unsafe { Self::ptr_len(self) } | 31 | 4 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<u8> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::len Line | Count | Source | 28 | 63 | fn len(&self) -> usize { | 29 | 63 | // Safety: self is a RingBuffer | 30 | 63 | unsafe { Self::ptr_len(self) } | 31 | 63 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<&str> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::len Line | Count | Source | 28 | 4 | fn len(&self) -> usize { | 29 | 4 | // Safety: self is a RingBuffer | 30 | 4 | unsafe { Self::ptr_len(self) } | 31 | 4 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::len Line | Count | Source | 28 | 209k | fn len(&self) -> usize { | 29 | 209k | // Safety: self is a RingBuffer | 30 | 209k | unsafe { Self::ptr_len(self) } | 31 | 209k | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::len Line | Count | Source | 28 | 10 | fn len(&self) -> usize { | 29 | 10 | // Safety: self is a RingBuffer | 30 | 10 | unsafe { Self::ptr_len(self) } | 31 | 10 | } |
|
32 | | |
33 | | /// Raw pointer version of len |
34 | | /// |
35 | | /// # Safety |
36 | | /// ONLY SAFE WHEN self is a *mut to to an implementor of `RingBuffer` |
37 | | #[doc(hidden)] |
38 | | unsafe fn ptr_len(rb: *const Self) -> usize; |
39 | | |
40 | | /// Returns true if the buffer is entirely empty. |
41 | | #[inline] |
42 | 1.48M | fn is_empty(&self) -> bool { |
43 | 1.48M | self.len() == 0 |
44 | 1.48M | } <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 10 | fn is_empty(&self) -> bool { | 43 | 10 | self.len() == 0 | 44 | 10 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::is_empty Line | Count | Source | 42 | 20 | fn is_empty(&self) -> bool { | 43 | 20 | self.len() == 0 | 44 | 20 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 4 | fn is_empty(&self) -> bool { | 43 | 4 | self.len() == 0 | 44 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::is_empty Line | Count | Source | 42 | 98 | fn is_empty(&self) -> bool { | 43 | 98 | self.len() == 0 | 44 | 98 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 4 | fn is_empty(&self) -> bool { | 43 | 4 | self.len() == 0 | 44 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 12 | fn is_empty(&self) -> bool { | 43 | 12 | self.len() == 0 | 44 | 12 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::is_empty Line | Count | Source | 42 | 196 | fn is_empty(&self) -> bool { | 43 | 196 | self.len() == 0 | 44 | 196 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 10 | fn is_empty(&self) -> bool { | 43 | 10 | self.len() == 0 | 44 | 10 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 4 | fn is_empty(&self) -> bool { | 43 | 4 | self.len() == 0 | 44 | 4 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::is_empty Line | Count | Source | 42 | 20 | fn is_empty(&self) -> bool { | 43 | 20 | self.len() == 0 | 44 | 20 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 12 | fn is_empty(&self) -> bool { | 43 | 12 | self.len() == 0 | 44 | 12 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::is_empty Line | Count | Source | 42 | 98 | fn is_empty(&self) -> bool { | 43 | 98 | self.len() == 0 | 44 | 98 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 4 | fn is_empty(&self) -> bool { | 43 | 4 | self.len() == 0 | 44 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::is_empty Line | Count | Source | 42 | 26 | fn is_empty(&self) -> bool { | 43 | 26 | self.len() == 0 | 44 | 26 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 54.5k | fn is_empty(&self) -> bool { | 43 | 54.5k | self.len() == 0 | 44 | 54.5k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 109 | fn is_empty(&self) -> bool { | 43 | 109 | self.len() == 0 | 44 | 109 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 10usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_empty Line | Count | Source | 42 | 1.10k | fn is_empty(&self) -> bool { | 43 | 1.10k | self.len() == 0 | 44 | 1.10k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 600k | fn is_empty(&self) -> bool { | 43 | 600k | self.len() == 0 | 44 | 600k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::is_empty Line | Count | Source | 42 | 14 | fn is_empty(&self) -> bool { | 43 | 14 | self.len() == 0 | 44 | 14 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 70usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_empty Line | Count | Source | 42 | 3.30k | fn is_empty(&self) -> bool { | 43 | 3.30k | self.len() == 0 | 44 | 3.30k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 70 | fn is_empty(&self) -> bool { | 43 | 70 | self.len() == 0 | 44 | 70 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_empty Line | Count | Source | 42 | 5.91k | fn is_empty(&self) -> bool { | 43 | 5.91k | self.len() == 0 | 44 | 5.91k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 30 | fn is_empty(&self) -> bool { | 43 | 30 | self.len() == 0 | 44 | 30 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<ringbuffer::tests::test_dropping::Dropee, 1usize> as ringbuffer::ringbuffer_trait::RingBuffer<ringbuffer::tests::test_dropping::Dropee>>::is_empty Line | Count | Source | 42 | 2 | fn is_empty(&self) -> bool { | 43 | 2 | self.len() == 0 | 44 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::is_empty Line | Count | Source | 42 | 10 | fn is_empty(&self) -> bool { | 43 | 10 | self.len() == 0 | 44 | 10 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 94 | fn is_empty(&self) -> bool { | 43 | 94 | self.len() == 0 | 44 | 94 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_empty Line | Count | Source | 42 | 19 | fn is_empty(&self) -> bool { | 43 | 19 | self.len() == 0 | 44 | 19 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 4.09k | fn is_empty(&self) -> bool { | 43 | 4.09k | self.len() == 0 | 44 | 4.09k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::is_empty Line | Count | Source | 42 | 7 | fn is_empty(&self) -> bool { | 43 | 7 | self.len() == 0 | 44 | 7 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 17usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_empty Line | Count | Source | 42 | 918 | fn is_empty(&self) -> bool { | 43 | 918 | self.len() == 0 | 44 | 918 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<ringbuffer::tests::test_dropping::Dropee> as ringbuffer::ringbuffer_trait::RingBuffer<ringbuffer::tests::test_dropping::Dropee>>::is_empty Line | Count | Source | 42 | 2 | fn is_empty(&self) -> bool { | 43 | 2 | self.len() == 0 | 44 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::is_empty Line | Count | Source | 42 | 7 | fn is_empty(&self) -> bool { | 43 | 7 | self.len() == 0 | 44 | 7 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 600k | fn is_empty(&self) -> bool { | 43 | 600k | self.len() == 0 | 44 | 600k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_empty Line | Count | Source | 42 | 1.12k | fn is_empty(&self) -> bool { | 43 | 1.12k | self.len() == 0 | 44 | 1.12k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<alloc::vec::Vec<i32>> as ringbuffer::ringbuffer_trait::RingBuffer<alloc::vec::Vec<i32>>>::is_empty Line | Count | Source | 42 | 6 | fn is_empty(&self) -> bool { | 43 | 6 | self.len() == 0 | 44 | 6 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<u8> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::is_empty Line | Count | Source | 42 | 26 | fn is_empty(&self) -> bool { | 43 | 26 | self.len() == 0 | 44 | 26 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_empty Line | Count | Source | 42 | 10 | fn is_empty(&self) -> bool { | 43 | 10 | self.len() == 0 | 44 | 10 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_empty Line | Count | Source | 42 | 209k | fn is_empty(&self) -> bool { | 43 | 209k | self.len() == 0 | 44 | 209k | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<&str> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::is_empty Line | Count | Source | 42 | 3 | fn is_empty(&self) -> bool { | 43 | 3 | self.len() == 0 | 44 | 3 | } |
|
45 | | |
46 | | /// Returns true when the length of the ringbuffer equals the capacity. This happens whenever |
47 | | /// more elements than capacity have been pushed to the buffer. |
48 | | #[inline] |
49 | 1.45M | fn is_full(&self) -> bool { |
50 | 1.45M | self.len() == self.capacity() |
51 | 1.45M | } <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 4 | fn is_full(&self) -> bool { | 50 | 4 | self.len() == self.capacity() | 51 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::is_full Line | Count | Source | 49 | 26 | fn is_full(&self) -> bool { | 50 | 26 | self.len() == self.capacity() | 51 | 26 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 3 | fn is_full(&self) -> bool { | 50 | 3 | self.len() == self.capacity() | 51 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 2 | fn is_full(&self) -> bool { | 50 | 2 | self.len() == self.capacity() | 51 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::is_full Line | Count | Source | 49 | 68 | fn is_full(&self) -> bool { | 50 | 68 | self.len() == self.capacity() | 51 | 68 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 4 | fn is_full(&self) -> bool { | 50 | 4 | self.len() == self.capacity() | 51 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::is_full Line | Count | Source | 49 | 26 | fn is_full(&self) -> bool { | 50 | 26 | self.len() == self.capacity() | 51 | 26 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 3 | fn is_full(&self) -> bool { | 50 | 3 | self.len() == self.capacity() | 51 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 2 | fn is_full(&self) -> bool { | 50 | 2 | self.len() == self.capacity() | 51 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 17usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_full Line | Count | Source | 49 | 399 | fn is_full(&self) -> bool { | 50 | 399 | self.len() == self.capacity() | 51 | 399 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 9.02k | fn is_full(&self) -> bool { | 50 | 9.02k | self.len() == self.capacity() | 51 | 9.02k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_full Line | Count | Source | 49 | 10 | fn is_full(&self) -> bool { | 50 | 10 | self.len() == self.capacity() | 51 | 10 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::is_full Line | Count | Source | 49 | 7 | fn is_full(&self) -> bool { | 50 | 7 | self.len() == self.capacity() | 51 | 7 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 57 | fn is_full(&self) -> bool { | 50 | 57 | self.len() == self.capacity() | 51 | 57 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 44.7k | fn is_full(&self) -> bool { | 50 | 44.7k | self.len() == self.capacity() | 51 | 44.7k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<ringbuffer::tests::test_dropping::Dropee, 1usize> as ringbuffer::ringbuffer_trait::RingBuffer<ringbuffer::tests::test_dropping::Dropee>>::is_full Line | Count | Source | 49 | 2 | fn is_full(&self) -> bool { | 50 | 2 | self.len() == self.capacity() | 51 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 14 | fn is_full(&self) -> bool { | 50 | 14 | self.len() == self.capacity() | 51 | 14 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_full Line | Count | Source | 49 | 291 | fn is_full(&self) -> bool { | 50 | 291 | self.len() == self.capacity() | 51 | 291 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::is_full Line | Count | Source | 49 | 8 | fn is_full(&self) -> bool { | 50 | 8 | self.len() == self.capacity() | 51 | 8 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::is_full Line | Count | Source | 49 | 6 | fn is_full(&self) -> bool { | 50 | 6 | self.len() == self.capacity() | 51 | 6 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 600k | fn is_full(&self) -> bool { | 50 | 600k | self.len() == self.capacity() | 51 | 600k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::is_full Line | Count | Source | 49 | 3 | fn is_full(&self) -> bool { | 50 | 3 | self.len() == self.capacity() | 51 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 10usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_full Line | Count | Source | 49 | 100k | fn is_full(&self) -> bool { | 50 | 100k | self.len() == self.capacity() | 51 | 100k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 32 | fn is_full(&self) -> bool { | 50 | 32 | self.len() == self.capacity() | 51 | 32 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 21 | fn is_full(&self) -> bool { | 50 | 21 | self.len() == self.capacity() | 51 | 21 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 70usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_full Line | Count | Source | 49 | 315 | fn is_full(&self) -> bool { | 50 | 315 | self.len() == self.capacity() | 51 | 315 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<u8> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::is_full Line | Count | Source | 49 | 25 | fn is_full(&self) -> bool { | 50 | 25 | self.len() == self.capacity() | 51 | 25 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<alloc::vec::Vec<i32>> as ringbuffer::ringbuffer_trait::RingBuffer<alloc::vec::Vec<i32>>>::is_full Line | Count | Source | 49 | 2 | fn is_full(&self) -> bool { | 50 | 2 | self.len() == self.capacity() | 51 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::is_full Line | Count | Source | 49 | 100k | fn is_full(&self) -> bool { | 50 | 100k | self.len() == self.capacity() | 51 | 100k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 600k | fn is_full(&self) -> bool { | 50 | 600k | self.len() == self.capacity() | 51 | 600k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::is_full Line | Count | Source | 49 | 3 | fn is_full(&self) -> bool { | 50 | 3 | self.len() == self.capacity() | 51 | 3 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<ringbuffer::tests::test_dropping::Dropee> as ringbuffer::ringbuffer_trait::RingBuffer<ringbuffer::tests::test_dropping::Dropee>>::is_full Line | Count | Source | 49 | 2 | fn is_full(&self) -> bool { | 50 | 2 | self.len() == self.capacity() | 51 | 2 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::is_full Line | Count | Source | 49 | 3 | fn is_full(&self) -> bool { | 50 | 3 | self.len() == self.capacity() | 51 | 3 | } |
|
52 | | |
53 | | /// Returns the capacity of the buffer. |
54 | 1.45M | fn capacity(&self) -> usize { |
55 | 1.45M | // Safety: self is a RingBuffer |
56 | 1.45M | unsafe { Self::ptr_capacity(self) } |
57 | 1.45M | } <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 4 | fn capacity(&self) -> usize { | 55 | 4 | // Safety: self is a RingBuffer | 56 | 4 | unsafe { Self::ptr_capacity(self) } | 57 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 3 | fn capacity(&self) -> usize { | 55 | 3 | // Safety: self is a RingBuffer | 56 | 3 | unsafe { Self::ptr_capacity(self) } | 57 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::capacity Line | Count | Source | 54 | 26 | fn capacity(&self) -> usize { | 55 | 26 | // Safety: self is a RingBuffer | 56 | 26 | unsafe { Self::ptr_capacity(self) } | 57 | 26 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 2 | fn capacity(&self) -> usize { | 55 | 2 | // Safety: self is a RingBuffer | 56 | 2 | unsafe { Self::ptr_capacity(self) } | 57 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::capacity Line | Count | Source | 54 | 68 | fn capacity(&self) -> usize { | 55 | 68 | // Safety: self is a RingBuffer | 56 | 68 | unsafe { Self::ptr_capacity(self) } | 57 | 68 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 4 | fn capacity(&self) -> usize { | 55 | 4 | // Safety: self is a RingBuffer | 56 | 4 | unsafe { Self::ptr_capacity(self) } | 57 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 2 | fn capacity(&self) -> usize { | 55 | 2 | // Safety: self is a RingBuffer | 56 | 2 | unsafe { Self::ptr_capacity(self) } | 57 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 3 | fn capacity(&self) -> usize { | 55 | 3 | // Safety: self is a RingBuffer | 56 | 3 | unsafe { Self::ptr_capacity(self) } | 57 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::capacity Line | Count | Source | 54 | 26 | fn capacity(&self) -> usize { | 55 | 26 | // Safety: self is a RingBuffer | 56 | 26 | unsafe { Self::ptr_capacity(self) } | 57 | 26 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::capacity Line | Count | Source | 54 | 7 | fn capacity(&self) -> usize { | 55 | 7 | // Safety: self is a RingBuffer | 56 | 7 | unsafe { Self::ptr_capacity(self) } | 57 | 7 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 57 | fn capacity(&self) -> usize { | 55 | 57 | // Safety: self is a RingBuffer | 56 | 57 | unsafe { Self::ptr_capacity(self) } | 57 | 57 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::capacity Line | Count | Source | 54 | 8 | fn capacity(&self) -> usize { | 55 | 8 | // Safety: self is a RingBuffer | 56 | 8 | unsafe { Self::ptr_capacity(self) } | 57 | 8 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 17usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::capacity Line | Count | Source | 54 | 399 | fn capacity(&self) -> usize { | 55 | 399 | // Safety: self is a RingBuffer | 56 | 399 | unsafe { Self::ptr_capacity(self) } | 57 | 399 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 9.02k | fn capacity(&self) -> usize { | 55 | 9.02k | // Safety: self is a RingBuffer | 56 | 9.02k | unsafe { Self::ptr_capacity(self) } | 57 | 9.02k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 600k | fn capacity(&self) -> usize { | 55 | 600k | // Safety: self is a RingBuffer | 56 | 600k | unsafe { Self::ptr_capacity(self) } | 57 | 600k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 34 | fn capacity(&self) -> usize { | 55 | 34 | // Safety: self is a RingBuffer | 56 | 34 | unsafe { Self::ptr_capacity(self) } | 57 | 34 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::capacity Line | Count | Source | 54 | 339 | fn capacity(&self) -> usize { | 55 | 339 | // Safety: self is a RingBuffer | 56 | 339 | unsafe { Self::ptr_capacity(self) } | 57 | 339 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 21 | fn capacity(&self) -> usize { | 55 | 21 | // Safety: self is a RingBuffer | 56 | 21 | unsafe { Self::ptr_capacity(self) } | 57 | 21 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::capacity Line | Count | Source | 54 | 10 | fn capacity(&self) -> usize { | 55 | 10 | // Safety: self is a RingBuffer | 56 | 10 | unsafe { Self::ptr_capacity(self) } | 57 | 10 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 10usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::capacity Line | Count | Source | 54 | 101k | fn capacity(&self) -> usize { | 55 | 101k | // Safety: self is a RingBuffer | 56 | 101k | unsafe { Self::ptr_capacity(self) } | 57 | 101k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<ringbuffer::tests::test_dropping::Dropee, 1usize> as ringbuffer::ringbuffer_trait::RingBuffer<ringbuffer::tests::test_dropping::Dropee>>::capacity Line | Count | Source | 54 | 2 | fn capacity(&self) -> usize { | 55 | 2 | // Safety: self is a RingBuffer | 56 | 2 | unsafe { Self::ptr_capacity(self) } | 57 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 14 | fn capacity(&self) -> usize { | 55 | 14 | // Safety: self is a RingBuffer | 56 | 14 | unsafe { Self::ptr_capacity(self) } | 57 | 14 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::capacity Line | Count | Source | 54 | 3 | fn capacity(&self) -> usize { | 55 | 3 | // Safety: self is a RingBuffer | 56 | 3 | unsafe { Self::ptr_capacity(self) } | 57 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 44.9k | fn capacity(&self) -> usize { | 55 | 44.9k | // Safety: self is a RingBuffer | 56 | 44.9k | unsafe { Self::ptr_capacity(self) } | 57 | 44.9k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 70usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::capacity Line | Count | Source | 54 | 339 | fn capacity(&self) -> usize { | 55 | 339 | // Safety: self is a RingBuffer | 56 | 339 | unsafe { Self::ptr_capacity(self) } | 57 | 339 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::capacity Line | Count | Source | 54 | 6 | fn capacity(&self) -> usize { | 55 | 6 | // Safety: self is a RingBuffer | 56 | 6 | unsafe { Self::ptr_capacity(self) } | 57 | 6 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::capacity Line | Count | Source | 54 | 3 | fn capacity(&self) -> usize { | 55 | 3 | // Safety: self is a RingBuffer | 56 | 3 | unsafe { Self::ptr_capacity(self) } | 57 | 3 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<ringbuffer::tests::test_dropping::Dropee> as ringbuffer::ringbuffer_trait::RingBuffer<ringbuffer::tests::test_dropping::Dropee>>::capacity Line | Count | Source | 54 | 2 | fn capacity(&self) -> usize { | 55 | 2 | // Safety: self is a RingBuffer | 56 | 2 | unsafe { Self::ptr_capacity(self) } | 57 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<u8> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::capacity Line | Count | Source | 54 | 25 | fn capacity(&self) -> usize { | 55 | 25 | // Safety: self is a RingBuffer | 56 | 25 | unsafe { Self::ptr_capacity(self) } | 57 | 25 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 600k | fn capacity(&self) -> usize { | 55 | 600k | // Safety: self is a RingBuffer | 56 | 600k | unsafe { Self::ptr_capacity(self) } | 57 | 600k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::capacity Line | Count | Source | 54 | 101k | fn capacity(&self) -> usize { | 55 | 101k | // Safety: self is a RingBuffer | 56 | 101k | unsafe { Self::ptr_capacity(self) } | 57 | 101k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<alloc::vec::Vec<i32>> as ringbuffer::ringbuffer_trait::RingBuffer<alloc::vec::Vec<i32>>>::capacity Line | Count | Source | 54 | 2 | fn capacity(&self) -> usize { | 55 | 2 | // Safety: self is a RingBuffer | 56 | 2 | unsafe { Self::ptr_capacity(self) } | 57 | 2 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::capacity Line | Count | Source | 54 | 9 | fn capacity(&self) -> usize { | 55 | 9 | // Safety: self is a RingBuffer | 56 | 9 | unsafe { Self::ptr_capacity(self) } | 57 | 9 | } |
|
58 | | |
59 | | /// Returns the number of elements allocated for this ringbuffer (can be larger than capacity). |
60 | 402k | fn buffer_size(&self) -> usize { |
61 | 402k | // Safety: self is a RingBuffer |
62 | 402k | unsafe { Self::ptr_buffer_size(self) } |
63 | 402k | } <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::buffer_size Line | Count | Source | 60 | 4 | fn buffer_size(&self) -> usize { | 61 | 4 | // Safety: self is a RingBuffer | 62 | 4 | unsafe { Self::ptr_buffer_size(self) } | 63 | 4 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::buffer_size Line | Count | Source | 60 | 60 | fn buffer_size(&self) -> usize { | 61 | 60 | // Safety: self is a RingBuffer | 62 | 60 | unsafe { Self::ptr_buffer_size(self) } | 63 | 60 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::buffer_size Line | Count | Source | 60 | 60 | fn buffer_size(&self) -> usize { | 61 | 60 | // Safety: self is a RingBuffer | 62 | 60 | unsafe { Self::ptr_buffer_size(self) } | 63 | 60 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::buffer_size Line | Count | Source | 60 | 4 | fn buffer_size(&self) -> usize { | 61 | 4 | // Safety: self is a RingBuffer | 62 | 4 | unsafe { Self::ptr_buffer_size(self) } | 63 | 4 | } |
Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::buffer_size <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::buffer_size Line | Count | Source | 60 | 4 | fn buffer_size(&self) -> usize { | 61 | 4 | // Safety: self is a RingBuffer | 62 | 4 | unsafe { Self::ptr_buffer_size(self) } | 63 | 4 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::buffer_size Line | Count | Source | 60 | 60 | fn buffer_size(&self) -> usize { | 61 | 60 | // Safety: self is a RingBuffer | 62 | 60 | unsafe { Self::ptr_buffer_size(self) } | 63 | 60 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::buffer_size Line | Count | Source | 60 | 60 | fn buffer_size(&self) -> usize { | 61 | 60 | // Safety: self is a RingBuffer | 62 | 60 | unsafe { Self::ptr_buffer_size(self) } | 63 | 60 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::buffer_size Line | Count | Source | 60 | 4 | fn buffer_size(&self) -> usize { | 61 | 4 | // Safety: self is a RingBuffer | 62 | 4 | unsafe { Self::ptr_buffer_size(self) } | 63 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::buffer_size Line | Count | Source | 60 | 8 | fn buffer_size(&self) -> usize { | 61 | 8 | // Safety: self is a RingBuffer | 62 | 8 | unsafe { Self::ptr_buffer_size(self) } | 63 | 8 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::buffer_size Line | Count | Source | 60 | 4 | fn buffer_size(&self) -> usize { | 61 | 4 | // Safety: self is a RingBuffer | 62 | 4 | unsafe { Self::ptr_buffer_size(self) } | 63 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::buffer_size Line | Count | Source | 60 | 23 | fn buffer_size(&self) -> usize { | 61 | 23 | // Safety: self is a RingBuffer | 62 | 23 | unsafe { Self::ptr_buffer_size(self) } | 63 | 23 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::buffer_size Line | Count | Source | 60 | 6 | fn buffer_size(&self) -> usize { | 61 | 6 | // Safety: self is a RingBuffer | 62 | 6 | unsafe { Self::ptr_buffer_size(self) } | 63 | 6 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::buffer_size Line | Count | Source | 60 | 3 | fn buffer_size(&self) -> usize { | 61 | 3 | // Safety: self is a RingBuffer | 62 | 3 | unsafe { Self::ptr_buffer_size(self) } | 63 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::buffer_size Line | Count | Source | 60 | 14 | fn buffer_size(&self) -> usize { | 61 | 14 | // Safety: self is a RingBuffer | 62 | 14 | unsafe { Self::ptr_buffer_size(self) } | 63 | 14 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::buffer_size Line | Count | Source | 60 | 10 | fn buffer_size(&self) -> usize { | 61 | 10 | // Safety: self is a RingBuffer | 62 | 10 | unsafe { Self::ptr_buffer_size(self) } | 63 | 10 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::buffer_size Line | Count | Source | 60 | 30 | fn buffer_size(&self) -> usize { | 61 | 30 | // Safety: self is a RingBuffer | 62 | 30 | unsafe { Self::ptr_buffer_size(self) } | 63 | 30 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::buffer_size Line | Count | Source | 60 | 31 | fn buffer_size(&self) -> usize { | 61 | 31 | // Safety: self is a RingBuffer | 62 | 31 | unsafe { Self::ptr_buffer_size(self) } | 63 | 31 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::buffer_size Line | Count | Source | 60 | 200k | fn buffer_size(&self) -> usize { | 61 | 200k | // Safety: self is a RingBuffer | 62 | 200k | unsafe { Self::ptr_buffer_size(self) } | 63 | 200k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::buffer_size Line | Count | Source | 60 | 2.04k | fn buffer_size(&self) -> usize { | 61 | 2.04k | // Safety: self is a RingBuffer | 62 | 2.04k | unsafe { Self::ptr_buffer_size(self) } | 63 | 2.04k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::buffer_size Line | Count | Source | 60 | 3 | fn buffer_size(&self) -> usize { | 61 | 3 | // Safety: self is a RingBuffer | 62 | 3 | unsafe { Self::ptr_buffer_size(self) } | 63 | 3 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::buffer_size Line | Count | Source | 60 | 10 | fn buffer_size(&self) -> usize { | 61 | 10 | // Safety: self is a RingBuffer | 62 | 10 | unsafe { Self::ptr_buffer_size(self) } | 63 | 10 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::buffer_size Line | Count | Source | 60 | 200k | fn buffer_size(&self) -> usize { | 61 | 200k | // Safety: self is a RingBuffer | 62 | 200k | unsafe { Self::ptr_buffer_size(self) } | 63 | 200k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<u8> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::buffer_size Line | Count | Source | 60 | 12 | fn buffer_size(&self) -> usize { | 61 | 12 | // Safety: self is a RingBuffer | 62 | 12 | unsafe { Self::ptr_buffer_size(self) } | 63 | 12 | } |
|
64 | | |
65 | | /// Raw pointer version of capacity. |
66 | | /// |
67 | | /// # Safety |
68 | | /// ONLY SAFE WHEN self is a *mut to to an implementor of `RingBuffer` |
69 | | #[doc(hidden)] |
70 | | unsafe fn ptr_capacity(rb: *const Self) -> usize; |
71 | | |
72 | | /// Raw pointer version of `buffer_size`. |
73 | | /// |
74 | | /// # Safety |
75 | | /// ONLY SAFE WHEN self is a *mut to to an implementor of `RingBuffer` |
76 | | #[doc(hidden)] |
77 | | unsafe fn ptr_buffer_size(rb: *const Self) -> usize; |
78 | | |
79 | | /// Pushes a value onto the buffer. Cycles around if capacity is reached. |
80 | | fn push(&mut self, value: T); |
81 | | |
82 | | /// alias for [`push`](RingBuffer::push), forming a more natural counterpart to [`dequeue`](RingBuffer::dequeue) |
83 | 200k | fn enqueue(&mut self, value: T) { |
84 | 200k | self.push(value); |
85 | 200k | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::enqueue <ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 10usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::enqueue Line | Count | Source | 83 | 100k | fn enqueue(&mut self, value: T) { | 84 | 100k | self.push(value); | 85 | 100k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::enqueue Line | Count | Source | 83 | 4 | fn enqueue(&mut self, value: T) { | 84 | 4 | self.push(value); | 85 | 4 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::enqueue Line | Count | Source | 83 | 100k | fn enqueue(&mut self, value: T) { | 84 | 100k | self.push(value); | 85 | 100k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::enqueue Line | Count | Source | 83 | 4 | fn enqueue(&mut self, value: T) { | 84 | 4 | self.push(value); | 85 | 4 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::enqueue Line | Count | Source | 83 | 4 | fn enqueue(&mut self, value: T) { | 84 | 4 | self.push(value); | 85 | 4 | } |
|
86 | | |
87 | | /// alias for [`extend`](RingBuffer::extend). |
88 | | #[inline] |
89 | 0 | fn enqueue_many<I: IntoIterator<Item = T>>(&mut self, items: I) { |
90 | 0 | self.extend(items); |
91 | 0 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::enqueue_many::<_> Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::enqueue_many::<_> |
92 | | |
93 | | /// Clones and appends all elements in a slice to the `Vec`. |
94 | | /// |
95 | | /// Iterates over the slice `other`, clones each element, and then appends |
96 | | /// it to this `RingBuffer`. The `other` slice is traversed in-order. |
97 | | /// |
98 | | /// Depending on the `RingBuffer` implementation, may be faster than inserting items in a loop. |
99 | | /// `ConstGenericRingBuffer` is especially optimised in this regard. |
100 | | /// See also: [`ConstGenericRingBuffer::custom_extend_batched`](crate::with_const_generics::ConstGenericRingBuffer::custom_extend_batched) |
101 | | /// |
102 | | /// # Examples |
103 | | /// |
104 | | /// ``` |
105 | | /// use ringbuffer::{ConstGenericRingBuffer, RingBuffer}; |
106 | | /// |
107 | | /// let mut rb = ConstGenericRingBuffer::<_, 6>::new(); |
108 | | /// rb.push(1); |
109 | | /// |
110 | | /// rb.extend_from_slice(&[2, 3, 4]); |
111 | | /// assert_eq!(rb.to_vec(), vec![1, 2, 3, 4]); |
112 | | /// ``` |
113 | | /// |
114 | | /// [`extend`]: RingBuffer::extend |
115 | 0 | fn extend_from_slice(&mut self, other: &[T]) |
116 | 0 | where |
117 | 0 | T: Clone, |
118 | 0 | { |
119 | 0 | self.extend(other.iter().cloned()); |
120 | 0 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::extend_from_slice Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::extend_from_slice |
121 | | |
122 | | /// dequeues the top item off the ringbuffer, and moves this item out. |
123 | | fn dequeue(&mut self) -> Option<T>; |
124 | | |
125 | | /// dequeues the top item off the queue, but does not return it. Instead it is dropped. |
126 | | /// If the ringbuffer is empty, this function is a nop. |
127 | | #[inline] |
128 | 18 | fn skip(&mut self) { |
129 | 18 | let _ = self.dequeue(); |
130 | 18 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::skip <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::skip Line | Count | Source | 128 | 4 | fn skip(&mut self) { | 129 | 4 | let _ = self.dequeue(); | 130 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::skip Line | Count | Source | 128 | 2 | fn skip(&mut self) { | 129 | 2 | let _ = self.dequeue(); | 130 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::skip Line | Count | Source | 128 | 6 | fn skip(&mut self) { | 129 | 6 | let _ = self.dequeue(); | 130 | 6 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::skip Line | Count | Source | 128 | 6 | fn skip(&mut self) { | 129 | 6 | let _ = self.dequeue(); | 130 | 6 | } |
|
131 | | |
132 | | /// Returns an iterator over the elements in the ringbuffer, |
133 | | /// dequeueing elements as they are iterated over. |
134 | | /// |
135 | | /// ``` |
136 | | /// use ringbuffer::{AllocRingBuffer, RingBuffer}; |
137 | | /// |
138 | | /// let mut rb = AllocRingBuffer::new(16); |
139 | | /// for i in 0..8 { |
140 | | /// rb.push(i); |
141 | | /// } |
142 | | /// |
143 | | /// assert_eq!(rb.len(), 8); |
144 | | /// |
145 | | /// for i in rb.drain() { |
146 | | /// // prints the numbers 0 through 8 |
147 | | /// println!("{}", i); |
148 | | /// } |
149 | | /// |
150 | | /// // No elements remain |
151 | | /// assert_eq!(rb.len(), 0); |
152 | | /// |
153 | | /// ``` |
154 | 914 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { |
155 | 914 | RingBufferDrainingIterator::new(self) |
156 | 914 | } <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 3 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 3 | RingBufferDrainingIterator::new(self) | 156 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::drain Line | Count | Source | 154 | 14 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 14 | RingBufferDrainingIterator::new(self) | 156 | 14 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::drain Line | Count | Source | 154 | 28 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 28 | RingBufferDrainingIterator::new(self) | 156 | 28 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 3 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 3 | RingBufferDrainingIterator::new(self) | 156 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::drain Line | Count | Source | 154 | 14 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 14 | RingBufferDrainingIterator::new(self) | 156 | 14 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::drain Line | Count | Source | 154 | 78 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 78 | RingBufferDrainingIterator::new(self) | 156 | 78 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 10 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 10 | RingBufferDrainingIterator::new(self) | 156 | 10 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::drain Line | Count | Source | 154 | 1 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 1 | RingBufferDrainingIterator::new(self) | 156 | 1 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 37 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 37 | RingBufferDrainingIterator::new(self) | 156 | 37 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<ringbuffer::tests::test_dropping::Dropee, 1usize> as ringbuffer::ringbuffer_trait::RingBuffer<ringbuffer::tests::test_dropping::Dropee>>::drain Line | Count | Source | 154 | 1 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 1 | RingBufferDrainingIterator::new(self) | 156 | 1 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 16 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 16 | RingBufferDrainingIterator::new(self) | 156 | 16 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 17usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::drain Line | Count | Source | 154 | 78 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 78 | RingBufferDrainingIterator::new(self) | 156 | 78 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 422 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 422 | RingBufferDrainingIterator::new(self) | 156 | 422 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::drain Line | Count | Source | 154 | 1 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 1 | RingBufferDrainingIterator::new(self) | 156 | 1 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 70usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::drain Line | Count | Source | 154 | 78 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 78 | RingBufferDrainingIterator::new(self) | 156 | 78 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::drain Line | Count | Source | 154 | 1 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 1 | RingBufferDrainingIterator::new(self) | 156 | 1 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 19 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 19 | RingBufferDrainingIterator::new(self) | 156 | 19 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 10usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::drain Line | Count | Source | 154 | 1 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 1 | RingBufferDrainingIterator::new(self) | 156 | 1 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<ringbuffer::tests::test_dropping::Dropee> as ringbuffer::ringbuffer_trait::RingBuffer<ringbuffer::tests::test_dropping::Dropee>>::drain Line | Count | Source | 154 | 1 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 1 | RingBufferDrainingIterator::new(self) | 156 | 1 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 80 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 80 | RingBufferDrainingIterator::new(self) | 156 | 80 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<alloc::vec::Vec<i32>> as ringbuffer::ringbuffer_trait::RingBuffer<alloc::vec::Vec<i32>>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::drain Line | Count | Source | 154 | 1 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 1 | RingBufferDrainingIterator::new(self) | 156 | 1 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<u8> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::drain Line | Count | Source | 154 | 2 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 2 | RingBufferDrainingIterator::new(self) | 156 | 2 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::drain Line | Count | Source | 154 | 1 | fn drain(&mut self) -> RingBufferDrainingIterator<T, Self> { | 155 | 1 | RingBufferDrainingIterator::new(self) | 156 | 1 | } |
|
157 | | |
158 | | /// Moves all the elements of `other` into `self`, leaving `other` empty. |
159 | | /// |
160 | | /// # Examples |
161 | | /// |
162 | | /// ``` |
163 | | /// use ringbuffer::{ConstGenericRingBuffer, RingBuffer}; |
164 | | /// |
165 | | /// let mut vec = ConstGenericRingBuffer::<_, 6>::from(vec![1, 2, 3]); |
166 | | /// let mut vec2 = ConstGenericRingBuffer::<_, 6>::from(vec![4, 5, 6]); |
167 | | /// |
168 | | /// vec.append(&mut vec2); |
169 | | /// assert_eq!(vec.to_vec(), &[1, 2, 3, 4, 5, 6]); |
170 | | /// assert_eq!(vec2.to_vec(), &[]); |
171 | | /// ``` |
172 | 0 | fn append(&mut self, other: &mut Self) { |
173 | 0 | self.extend(other.drain()); |
174 | 0 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::append Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::append |
175 | | |
176 | | /// Sets every element in the ringbuffer to the value returned by f. |
177 | | fn fill_with<F: FnMut() -> T>(&mut self, f: F); |
178 | | |
179 | | /// Sets every element in the ringbuffer to it's default value |
180 | 12 | fn fill_default(&mut self) |
181 | 12 | where |
182 | 12 | T: Default, |
183 | 12 | { |
184 | 12 | self.fill_with(Default::default); |
185 | 12 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::fill_default <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::fill_default Line | Count | Source | 180 | 4 | fn fill_default(&mut self) | 181 | 4 | where | 182 | 4 | T: Default, | 183 | 4 | { | 184 | 4 | self.fill_with(Default::default); | 185 | 4 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::fill_default Line | Count | Source | 180 | 4 | fn fill_default(&mut self) | 181 | 4 | where | 182 | 4 | T: Default, | 183 | 4 | { | 184 | 4 | self.fill_with(Default::default); | 185 | 4 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::fill_default Line | Count | Source | 180 | 4 | fn fill_default(&mut self) | 181 | 4 | where | 182 | 4 | T: Default, | 183 | 4 | { | 184 | 4 | self.fill_with(Default::default); | 185 | 4 | } |
|
186 | | |
187 | | /// Sets every element in the ringbuffer to `value` |
188 | 13 | fn fill(&mut self, value: T) |
189 | 13 | where |
190 | 13 | T: Clone, |
191 | 13 | { |
192 | 50 | self.fill_with(|| value.clone()); Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::fill::{closure#0} <ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::fill::{closure#0} Line | Count | Source | 192 | 16 | self.fill_with(|| value.clone()); |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::fill::{closure#0} Line | Count | Source | 192 | 16 | self.fill_with(|| value.clone()); |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<alloc::vec::Vec<i32>> as ringbuffer::ringbuffer_trait::RingBuffer<alloc::vec::Vec<i32>>>::fill::{closure#0} Line | Count | Source | 192 | 2 | self.fill_with(|| value.clone()); |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::fill::{closure#0} Line | Count | Source | 192 | 16 | self.fill_with(|| value.clone()); |
|
193 | 13 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::fill <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::fill Line | Count | Source | 188 | 4 | fn fill(&mut self, value: T) | 189 | 4 | where | 190 | 4 | T: Clone, | 191 | 4 | { | 192 | 4 | self.fill_with(|| value.clone()); | 193 | 4 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<alloc::vec::Vec<i32>> as ringbuffer::ringbuffer_trait::RingBuffer<alloc::vec::Vec<i32>>>::fill Line | Count | Source | 188 | 1 | fn fill(&mut self, value: T) | 189 | 1 | where | 190 | 1 | T: Clone, | 191 | 1 | { | 192 | 1 | self.fill_with(|| value.clone()); | 193 | 1 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::fill Line | Count | Source | 188 | 4 | fn fill(&mut self, value: T) | 189 | 4 | where | 190 | 4 | T: Clone, | 191 | 4 | { | 192 | 4 | self.fill_with(|| value.clone()); | 193 | 4 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::fill Line | Count | Source | 188 | 4 | fn fill(&mut self, value: T) | 189 | 4 | where | 190 | 4 | T: Clone, | 191 | 4 | { | 192 | 4 | self.fill_with(|| value.clone()); | 193 | 4 | } |
|
194 | | |
195 | | /// Empties the buffer entirely. Sets the length to 0 but keeps the capacity allocated. |
196 | | fn clear(&mut self); |
197 | | |
198 | | /// Gets a value relative to the current index. 0 is the next index to be written to with push. |
199 | | /// -1 and down are the last elements pushed and 0 and up are the items that were pushed the longest ago. |
200 | | fn get_signed(&self, index: isize) -> Option<&T>; |
201 | | |
202 | | /// Gets a value relative to the current index. 0 is the next index to be written to with push. |
203 | | fn get(&self, index: usize) -> Option<&T>; |
204 | | |
205 | | /// Gets a value relative to the current index mutably. 0 is the next index to be written to with push. |
206 | | /// -1 and down are the last elements pushed and 0 and up are the items that were pushed the longest ago. |
207 | | #[inline] |
208 | 21 | fn get_mut_signed(&mut self, index: isize) -> Option<&mut T> { |
209 | 21 | // Safety: self is a RingBuffer |
210 | 21 | unsafe { Self::ptr_get_mut_signed(self, index).map(|i| &mut *i18 ) } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::get_mut_signed::{closure#0} <ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut_signed::{closure#0} Line | Count | Source | 210 | 6 | unsafe { Self::ptr_get_mut_signed(self, index).map(|i| &mut *i) } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut_signed::{closure#0} Line | Count | Source | 210 | 6 | unsafe { Self::ptr_get_mut_signed(self, index).map(|i| &mut *i) } |
Unexecuted instantiation: <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut_signed::{closure#0} <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut_signed::{closure#0} Line | Count | Source | 210 | 6 | unsafe { Self::ptr_get_mut_signed(self, index).map(|i| &mut *i) } |
|
211 | 21 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::get_mut_signed <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut_signed Line | Count | Source | 208 | 1 | fn get_mut_signed(&mut self, index: isize) -> Option<&mut T> { | 209 | 1 | // Safety: self is a RingBuffer | 210 | 1 | unsafe { Self::ptr_get_mut_signed(self, index).map(|i| &mut *i) } | 211 | 1 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut_signed Line | Count | Source | 208 | 6 | fn get_mut_signed(&mut self, index: isize) -> Option<&mut T> { | 209 | 6 | // Safety: self is a RingBuffer | 210 | 6 | unsafe { Self::ptr_get_mut_signed(self, index).map(|i| &mut *i) } | 211 | 6 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut_signed Line | Count | Source | 208 | 7 | fn get_mut_signed(&mut self, index: isize) -> Option<&mut T> { | 209 | 7 | // Safety: self is a RingBuffer | 210 | 7 | unsafe { Self::ptr_get_mut_signed(self, index).map(|i| &mut *i) } | 211 | 7 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut_signed Line | Count | Source | 208 | 7 | fn get_mut_signed(&mut self, index: isize) -> Option<&mut T> { | 209 | 7 | // Safety: self is a RingBuffer | 210 | 7 | unsafe { Self::ptr_get_mut_signed(self, index).map(|i| &mut *i) } | 211 | 7 | } |
|
212 | | |
213 | | /// Gets a value relative to the current index mutably. 0 is the next index to be written to with push. |
214 | | #[inline] |
215 | 21 | fn get_mut(&mut self, index: usize) -> Option<&mut T> { |
216 | 21 | // Safety: self is a RingBuffer |
217 | 21 | unsafe { Self::ptr_get_mut(self, index).map(|i| &mut *i15 ) } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::get_mut::{closure#0} <ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut::{closure#0} Line | Count | Source | 217 | 5 | unsafe { Self::ptr_get_mut(self, index).map(|i| &mut *i) } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut::{closure#0} Line | Count | Source | 217 | 5 | unsafe { Self::ptr_get_mut(self, index).map(|i| &mut *i) } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut::{closure#0} Line | Count | Source | 217 | 2 | unsafe { Self::ptr_get_mut(self, index).map(|i| &mut *i) } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut::{closure#0} Line | Count | Source | 217 | 3 | unsafe { Self::ptr_get_mut(self, index).map(|i| &mut *i) } |
|
218 | 21 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::get_mut <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut Line | Count | Source | 215 | 5 | fn get_mut(&mut self, index: usize) -> Option<&mut T> { | 216 | 5 | // Safety: self is a RingBuffer | 217 | 5 | unsafe { Self::ptr_get_mut(self, index).map(|i| &mut *i) } | 218 | 5 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut Line | Count | Source | 215 | 2 | fn get_mut(&mut self, index: usize) -> Option<&mut T> { | 216 | 2 | // Safety: self is a RingBuffer | 217 | 2 | unsafe { Self::ptr_get_mut(self, index).map(|i| &mut *i) } | 218 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut Line | Count | Source | 215 | 7 | fn get_mut(&mut self, index: usize) -> Option<&mut T> { | 216 | 7 | // Safety: self is a RingBuffer | 217 | 7 | unsafe { Self::ptr_get_mut(self, index).map(|i| &mut *i) } | 218 | 7 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_mut Line | Count | Source | 215 | 7 | fn get_mut(&mut self, index: usize) -> Option<&mut T> { | 216 | 7 | // Safety: self is a RingBuffer | 217 | 7 | unsafe { Self::ptr_get_mut(self, index).map(|i| &mut *i) } | 218 | 7 | } |
|
219 | | |
220 | | /// same as [`get_mut`](RingBuffer::get_mut) but on raw pointers. |
221 | | /// |
222 | | /// # Safety |
223 | | /// ONLY SAFE WHEN self is a *mut to to an implementor of `RingBuffer` |
224 | | #[doc(hidden)] |
225 | | unsafe fn ptr_get_mut(rb: *mut Self, index: usize) -> Option<*mut T>; |
226 | | |
227 | | /// same as [`get_mut`](RingBuffer::get_mut) but on raw pointers. |
228 | | /// |
229 | | /// # Safety |
230 | | /// ONLY SAFE WHEN self is a *mut to to an implementor of `RingBuffer` |
231 | | #[doc(hidden)] |
232 | | unsafe fn ptr_get_mut_signed(rb: *mut Self, index: isize) -> Option<*mut T>; |
233 | | |
234 | | /// Returns the value at the current index. |
235 | | /// This is the value that will be overwritten by the next push and also the value pushed |
236 | | /// the longest ago. (alias of [`Self::front`]) |
237 | | #[inline] |
238 | 6 | fn peek(&self) -> Option<&T> { |
239 | 6 | self.front() |
240 | 6 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::peek <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::peek Line | Count | Source | 238 | 1 | fn peek(&self) -> Option<&T> { | 239 | 1 | self.front() | 240 | 1 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::peek Line | Count | Source | 238 | 1 | fn peek(&self) -> Option<&T> { | 239 | 1 | self.front() | 240 | 1 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::peek Line | Count | Source | 238 | 2 | fn peek(&self) -> Option<&T> { | 239 | 2 | self.front() | 240 | 2 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::peek Line | Count | Source | 238 | 2 | fn peek(&self) -> Option<&T> { | 239 | 2 | self.front() | 240 | 2 | } |
|
241 | | |
242 | | /// Returns the value at the front of the queue. |
243 | | /// This is the value that will be overwritten by the next push and also the value pushed |
244 | | /// the longest ago. |
245 | | /// (alias of peek) |
246 | | #[inline] |
247 | 12 | fn front(&self) -> Option<&T> { |
248 | 12 | self.get(0) |
249 | 12 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::front <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::front Line | Count | Source | 247 | 2 | fn front(&self) -> Option<&T> { | 248 | 2 | self.get(0) | 249 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::front Line | Count | Source | 247 | 2 | fn front(&self) -> Option<&T> { | 248 | 2 | self.get(0) | 249 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::front Line | Count | Source | 247 | 4 | fn front(&self) -> Option<&T> { | 248 | 4 | self.get(0) | 249 | 4 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::front Line | Count | Source | 247 | 4 | fn front(&self) -> Option<&T> { | 248 | 4 | self.get(0) | 249 | 4 | } |
|
250 | | |
251 | | /// Returns a mutable reference to the value at the back of the queue. |
252 | | /// This is the value that will be overwritten by the next push. |
253 | | /// (alias of peek) |
254 | | #[inline] |
255 | 6 | fn front_mut(&mut self) -> Option<&mut T> { |
256 | 6 | self.get_mut(0) |
257 | 6 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::front_mut <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::front_mut Line | Count | Source | 255 | 1 | fn front_mut(&mut self) -> Option<&mut T> { | 256 | 1 | self.get_mut(0) | 257 | 1 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::front_mut Line | Count | Source | 255 | 1 | fn front_mut(&mut self) -> Option<&mut T> { | 256 | 1 | self.get_mut(0) | 257 | 1 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::front_mut Line | Count | Source | 255 | 2 | fn front_mut(&mut self) -> Option<&mut T> { | 256 | 2 | self.get_mut(0) | 257 | 2 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::front_mut Line | Count | Source | 255 | 2 | fn front_mut(&mut self) -> Option<&mut T> { | 256 | 2 | self.get_mut(0) | 257 | 2 | } |
|
258 | | |
259 | | /// Returns the value at the back of the queue. |
260 | | /// This is the item that was pushed most recently. |
261 | | #[inline] |
262 | 6 | fn back(&self) -> Option<&T> { |
263 | 6 | self.get_signed(-1) |
264 | 6 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::back <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::back Line | Count | Source | 262 | 1 | fn back(&self) -> Option<&T> { | 263 | 1 | self.get_signed(-1) | 264 | 1 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::back Line | Count | Source | 262 | 1 | fn back(&self) -> Option<&T> { | 263 | 1 | self.get_signed(-1) | 264 | 1 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::back Line | Count | Source | 262 | 2 | fn back(&self) -> Option<&T> { | 263 | 2 | self.get_signed(-1) | 264 | 2 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::back Line | Count | Source | 262 | 2 | fn back(&self) -> Option<&T> { | 263 | 2 | self.get_signed(-1) | 264 | 2 | } |
|
265 | | |
266 | | /// Returns a mutable reference to the value at the back of the queue. |
267 | | /// This is the item that was pushed most recently. |
268 | | #[inline] |
269 | 6 | fn back_mut(&mut self) -> Option<&mut T> { |
270 | 6 | self.get_mut_signed(-1) |
271 | 6 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::back_mut <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::back_mut Line | Count | Source | 269 | 1 | fn back_mut(&mut self) -> Option<&mut T> { | 270 | 1 | self.get_mut_signed(-1) | 271 | 1 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::back_mut Line | Count | Source | 269 | 1 | fn back_mut(&mut self) -> Option<&mut T> { | 270 | 1 | self.get_mut_signed(-1) | 271 | 1 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::back_mut Line | Count | Source | 269 | 2 | fn back_mut(&mut self) -> Option<&mut T> { | 270 | 2 | self.get_mut_signed(-1) | 271 | 2 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::back_mut Line | Count | Source | 269 | 2 | fn back_mut(&mut self) -> Option<&mut T> { | 270 | 2 | self.get_mut_signed(-1) | 271 | 2 | } |
|
272 | | |
273 | | /// Creates a mutable iterator over the buffer starting from the item pushed the longest ago, |
274 | | /// and ending at the element most recently pushed. |
275 | | #[inline] |
276 | 15 | fn iter_mut(&mut self) -> RingBufferMutIterator<T, Self> { |
277 | 15 | RingBufferMutIterator::new(self) |
278 | 15 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::iter_mut <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter_mut Line | Count | Source | 276 | 3 | fn iter_mut(&mut self) -> RingBufferMutIterator<T, Self> { | 277 | 3 | RingBufferMutIterator::new(self) | 278 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter_mut Line | Count | Source | 276 | 2 | fn iter_mut(&mut self) -> RingBufferMutIterator<T, Self> { | 277 | 2 | RingBufferMutIterator::new(self) | 278 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter_mut Line | Count | Source | 276 | 5 | fn iter_mut(&mut self) -> RingBufferMutIterator<T, Self> { | 277 | 5 | RingBufferMutIterator::new(self) | 278 | 5 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter_mut Line | Count | Source | 276 | 5 | fn iter_mut(&mut self) -> RingBufferMutIterator<T, Self> { | 277 | 5 | RingBufferMutIterator::new(self) | 278 | 5 | } |
|
279 | | |
280 | | /// Creates an iterator over the buffer starting from the item pushed the longest ago, |
281 | | /// and ending at the element most recently pushed. |
282 | | #[inline] |
283 | 250 | fn iter(&self) -> RingBufferIterator<T, Self> { |
284 | 250 | RingBufferIterator::new(self) |
285 | 250 | } <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::iter Line | Count | Source | 283 | 30 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 30 | RingBufferIterator::new(self) | 285 | 30 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 2 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 2 | RingBufferIterator::new(self) | 285 | 2 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::iter Line | Count | Source | 283 | 10 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 10 | RingBufferIterator::new(self) | 285 | 10 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 2 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 2 | RingBufferIterator::new(self) | 285 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::iter Line | Count | Source | 283 | 30 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 30 | RingBufferIterator::new(self) | 285 | 30 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 2 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 2 | RingBufferIterator::new(self) | 285 | 2 | } |
Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::iter <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 2 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 2 | RingBufferIterator::new(self) | 285 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::iter Line | Count | Source | 283 | 30 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 30 | RingBufferIterator::new(self) | 285 | 30 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::iter Line | Count | Source | 283 | 10 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 10 | RingBufferIterator::new(self) | 285 | 10 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 2 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 2 | RingBufferIterator::new(self) | 285 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::iter Line | Count | Source | 283 | 30 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 30 | RingBufferIterator::new(self) | 285 | 30 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 2 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 2 | RingBufferIterator::new(self) | 285 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::iter Line | Count | Source | 283 | 1 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 1 | RingBufferIterator::new(self) | 285 | 1 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::iter Line | Count | Source | 283 | 2 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 2 | RingBufferIterator::new(self) | 285 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 2 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 2 | RingBufferIterator::new(self) | 285 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 14 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 14 | RingBufferIterator::new(self) | 285 | 14 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 12 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 12 | RingBufferIterator::new(self) | 285 | 12 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 10 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 10 | RingBufferIterator::new(self) | 285 | 10 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 4 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 4 | RingBufferIterator::new(self) | 285 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 2 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 2 | RingBufferIterator::new(self) | 285 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::iter Line | Count | Source | 283 | 1 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 1 | RingBufferIterator::new(self) | 285 | 1 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 29 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 29 | RingBufferIterator::new(self) | 285 | 29 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<&str> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::iter Line | Count | Source | 283 | 1 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 1 | RingBufferIterator::new(self) | 285 | 1 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::iter Line | Count | Source | 283 | 20 | fn iter(&self) -> RingBufferIterator<T, Self> { | 284 | 20 | RingBufferIterator::new(self) | 285 | 20 | } |
|
286 | | |
287 | | /// Converts the buffer to a vector. This Copies all elements in the ringbuffer. |
288 | | #[cfg(feature = "alloc")] |
289 | 115 | fn to_vec(&self) -> Vec<T> |
290 | 115 | where |
291 | 115 | T: Clone, |
292 | 115 | { |
293 | 115 | self.iter().cloned().collect() |
294 | 115 | } <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 2 | fn to_vec(&self) -> Vec<T> | 290 | 2 | where | 291 | 2 | T: Clone, | 292 | 2 | { | 293 | 2 | self.iter().cloned().collect() | 294 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::to_vec Line | Count | Source | 289 | 10 | fn to_vec(&self) -> Vec<T> | 290 | 10 | where | 291 | 10 | T: Clone, | 292 | 10 | { | 293 | 10 | self.iter().cloned().collect() | 294 | 10 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 2 | fn to_vec(&self) -> Vec<T> | 290 | 2 | where | 291 | 2 | T: Clone, | 292 | 2 | { | 293 | 2 | self.iter().cloned().collect() | 294 | 2 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::to_vec Line | Count | Source | 289 | 10 | fn to_vec(&self) -> Vec<T> | 290 | 10 | where | 291 | 10 | T: Clone, | 292 | 10 | { | 293 | 10 | self.iter().cloned().collect() | 294 | 10 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::to_vec Line | Count | Source | 289 | 10 | fn to_vec(&self) -> Vec<T> | 290 | 10 | where | 291 | 10 | T: Clone, | 292 | 10 | { | 293 | 10 | self.iter().cloned().collect() | 294 | 10 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 2 | fn to_vec(&self) -> Vec<T> | 290 | 2 | where | 291 | 2 | T: Clone, | 292 | 2 | { | 293 | 2 | self.iter().cloned().collect() | 294 | 2 | } |
Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::to_vec <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 2 | fn to_vec(&self) -> Vec<T> | 290 | 2 | where | 291 | 2 | T: Clone, | 292 | 2 | { | 293 | 2 | self.iter().cloned().collect() | 294 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::to_vec Line | Count | Source | 289 | 10 | fn to_vec(&self) -> Vec<T> | 290 | 10 | where | 291 | 10 | T: Clone, | 292 | 10 | { | 293 | 10 | self.iter().cloned().collect() | 294 | 10 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::to_vec Line | Count | Source | 289 | 10 | fn to_vec(&self) -> Vec<T> | 290 | 10 | where | 291 | 10 | T: Clone, | 292 | 10 | { | 293 | 10 | self.iter().cloned().collect() | 294 | 10 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 2 | fn to_vec(&self) -> Vec<T> | 290 | 2 | where | 291 | 2 | T: Clone, | 292 | 2 | { | 293 | 2 | self.iter().cloned().collect() | 294 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 2 | fn to_vec(&self) -> Vec<T> | 290 | 2 | where | 291 | 2 | T: Clone, | 292 | 2 | { | 293 | 2 | self.iter().cloned().collect() | 294 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::to_vec Line | Count | Source | 289 | 10 | fn to_vec(&self) -> Vec<T> | 290 | 10 | where | 291 | 10 | T: Clone, | 292 | 10 | { | 293 | 10 | self.iter().cloned().collect() | 294 | 10 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 2 | fn to_vec(&self) -> Vec<T> | 290 | 2 | where | 291 | 2 | T: Clone, | 292 | 2 | { | 293 | 2 | self.iter().cloned().collect() | 294 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 10 | fn to_vec(&self) -> Vec<T> | 290 | 10 | where | 291 | 10 | T: Clone, | 292 | 10 | { | 293 | 10 | self.iter().cloned().collect() | 294 | 10 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 3 | fn to_vec(&self) -> Vec<T> | 290 | 3 | where | 291 | 3 | T: Clone, | 292 | 3 | { | 293 | 3 | self.iter().cloned().collect() | 294 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 2 | fn to_vec(&self) -> Vec<T> | 290 | 2 | where | 291 | 2 | T: Clone, | 292 | 2 | { | 293 | 2 | self.iter().cloned().collect() | 294 | 2 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 3 | fn to_vec(&self) -> Vec<T> | 290 | 3 | where | 291 | 3 | T: Clone, | 292 | 3 | { | 293 | 3 | self.iter().cloned().collect() | 294 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::to_vec Line | Count | Source | 289 | 2 | fn to_vec(&self) -> Vec<T> | 290 | 2 | where | 291 | 2 | T: Clone, | 292 | 2 | { | 293 | 2 | self.iter().cloned().collect() | 294 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 11 | fn to_vec(&self) -> Vec<T> | 290 | 11 | where | 291 | 11 | T: Clone, | 292 | 11 | { | 293 | 11 | self.iter().cloned().collect() | 294 | 11 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::to_vec Line | Count | Source | 289 | 10 | fn to_vec(&self) -> Vec<T> | 290 | 10 | where | 291 | 10 | T: Clone, | 292 | 10 | { | 293 | 10 | self.iter().cloned().collect() | 294 | 10 | } |
|
295 | | |
296 | | /// Returns true if elem is in the ringbuffer. |
297 | 6 | fn contains(&self, elem: &T) -> bool |
298 | 6 | where |
299 | 6 | T: PartialEq, |
300 | 6 | { |
301 | 9 | self.iter().any(|i| i == elem) Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::contains::{closure#0} <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::contains::{closure#0} Line | Count | Source | 301 | 3 | self.iter().any(|i| i == elem) |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::contains::{closure#0} Line | Count | Source | 301 | 3 | self.iter().any(|i| i == elem) |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::contains::{closure#0} Line | Count | Source | 301 | 3 | self.iter().any(|i| i == elem) |
|
302 | 6 | } Unexecuted instantiation: <_ as ringbuffer::ringbuffer_trait::RingBuffer<_>>::contains <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::contains Line | Count | Source | 297 | 2 | fn contains(&self, elem: &T) -> bool | 298 | 2 | where | 299 | 2 | T: PartialEq, | 300 | 2 | { | 301 | 2 | self.iter().any(|i| i == elem) | 302 | 2 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::contains Line | Count | Source | 297 | 2 | fn contains(&self, elem: &T) -> bool | 298 | 2 | where | 299 | 2 | T: PartialEq, | 300 | 2 | { | 301 | 2 | self.iter().any(|i| i == elem) | 302 | 2 | } |
<ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::contains Line | Count | Source | 297 | 2 | fn contains(&self, elem: &T) -> bool | 298 | 2 | where | 299 | 2 | T: PartialEq, | 300 | 2 | { | 301 | 2 | self.iter().any(|i| i == elem) | 302 | 2 | } |
|
303 | | } |
304 | | |
305 | | mod iter { |
306 | | use crate::RingBuffer; |
307 | | use core::iter::FusedIterator; |
308 | | use core::marker::PhantomData; |
309 | | use core::ptr::NonNull; |
310 | | |
311 | | /// `RingBufferIterator` holds a reference to a `RingBuffer` and iterates over it. `index` is the |
312 | | /// current iterator position. |
313 | | pub struct RingBufferIterator<'rb, T, RB: RingBuffer<T>> { |
314 | | obj: &'rb RB, |
315 | | len: usize, |
316 | | index: usize, |
317 | | phantom: PhantomData<T>, |
318 | | } |
319 | | |
320 | | impl<'rb, T, RB: RingBuffer<T>> RingBufferIterator<'rb, T, RB> { |
321 | | #[inline] |
322 | 250 | pub fn new(obj: &'rb RB) -> Self { |
323 | 250 | Self { |
324 | 250 | obj, |
325 | 250 | len: obj.len(), |
326 | 250 | index: 0, |
327 | 250 | phantom: PhantomData, |
328 | 250 | } |
329 | 250 | } <ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char>>>::new Line | Count | Source | 322 | 10 | pub fn new(obj: &'rb RB) -> Self { | 323 | 10 | Self { | 324 | 10 | obj, | 325 | 10 | len: obj.len(), | 326 | 10 | index: 0, | 327 | 10 | phantom: PhantomData, | 328 | 10 | } | 329 | 10 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char>>>::new Line | Count | Source | 322 | 30 | pub fn new(obj: &'rb RB) -> Self { | 323 | 30 | Self { | 324 | 30 | obj, | 325 | 30 | len: obj.len(), | 326 | 30 | index: 0, | 327 | 30 | phantom: PhantomData, | 328 | 30 | } | 329 | 30 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize>>>::new Line | Count | Source | 322 | 30 | pub fn new(obj: &'rb RB) -> Self { | 323 | 30 | Self { | 324 | 30 | obj, | 325 | 30 | len: obj.len(), | 326 | 30 | index: 0, | 327 | 30 | phantom: PhantomData, | 328 | 30 | } | 329 | 30 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>>>::new Line | Count | Source | 322 | 2 | pub fn new(obj: &'rb RB) -> Self { | 323 | 2 | Self { | 324 | 2 | obj, | 325 | 2 | len: obj.len(), | 326 | 2 | index: 0, | 327 | 2 | phantom: PhantomData, | 328 | 2 | } | 329 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>>>::new Line | Count | Source | 322 | 2 | pub fn new(obj: &'rb RB) -> Self { | 323 | 2 | Self { | 324 | 2 | obj, | 325 | 2 | len: obj.len(), | 326 | 2 | index: 0, | 327 | 2 | phantom: PhantomData, | 328 | 2 | } | 329 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>>>::new Line | Count | Source | 322 | 2 | pub fn new(obj: &'rb RB) -> Self { | 323 | 2 | Self { | 324 | 2 | obj, | 325 | 2 | len: obj.len(), | 326 | 2 | index: 0, | 327 | 2 | phantom: PhantomData, | 328 | 2 | } | 329 | 2 | } |
Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferIterator<_, _>>::new <ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char>>>::new Line | Count | Source | 322 | 30 | pub fn new(obj: &'rb RB) -> Self { | 323 | 30 | Self { | 324 | 30 | obj, | 325 | 30 | len: obj.len(), | 326 | 30 | index: 0, | 327 | 30 | phantom: PhantomData, | 328 | 30 | } | 329 | 30 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize>>>::new Line | Count | Source | 322 | 30 | pub fn new(obj: &'rb RB) -> Self { | 323 | 30 | Self { | 324 | 30 | obj, | 325 | 30 | len: obj.len(), | 326 | 30 | index: 0, | 327 | 30 | phantom: PhantomData, | 328 | 30 | } | 329 | 30 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char>>>::new Line | Count | Source | 322 | 10 | pub fn new(obj: &'rb RB) -> Self { | 323 | 10 | Self { | 324 | 10 | obj, | 325 | 10 | len: obj.len(), | 326 | 10 | index: 0, | 327 | 10 | phantom: PhantomData, | 328 | 10 | } | 329 | 10 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>>>::new Line | Count | Source | 322 | 2 | pub fn new(obj: &'rb RB) -> Self { | 323 | 2 | Self { | 324 | 2 | obj, | 325 | 2 | len: obj.len(), | 326 | 2 | index: 0, | 327 | 2 | phantom: PhantomData, | 328 | 2 | } | 329 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>>>::new Line | Count | Source | 322 | 2 | pub fn new(obj: &'rb RB) -> Self { | 323 | 2 | Self { | 324 | 2 | obj, | 325 | 2 | len: obj.len(), | 326 | 2 | index: 0, | 327 | 2 | phantom: PhantomData, | 328 | 2 | } | 329 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>>>::new Line | Count | Source | 322 | 2 | pub fn new(obj: &'rb RB) -> Self { | 323 | 2 | Self { | 324 | 2 | obj, | 325 | 2 | len: obj.len(), | 326 | 2 | index: 0, | 327 | 2 | phantom: PhantomData, | 328 | 2 | } | 329 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>>>::new Line | Count | Source | 322 | 20 | pub fn new(obj: &'rb RB) -> Self { | 323 | 20 | Self { | 324 | 20 | obj, | 325 | 20 | len: obj.len(), | 326 | 20 | index: 0, | 327 | 20 | phantom: PhantomData, | 328 | 20 | } | 329 | 20 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<&str, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<&str>>>::new Line | Count | Source | 322 | 1 | pub fn new(obj: &'rb RB) -> Self { | 323 | 1 | Self { | 324 | 1 | obj, | 325 | 1 | len: obj.len(), | 326 | 1 | index: 0, | 327 | 1 | phantom: PhantomData, | 328 | 1 | } | 329 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize>>>::new Line | Count | Source | 322 | 14 | pub fn new(obj: &'rb RB) -> Self { | 323 | 14 | Self { | 324 | 14 | obj, | 325 | 14 | len: obj.len(), | 326 | 14 | index: 0, | 327 | 14 | phantom: PhantomData, | 328 | 14 | } | 329 | 14 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>>>::new Line | Count | Source | 322 | 29 | pub fn new(obj: &'rb RB) -> Self { | 323 | 29 | Self { | 324 | 29 | obj, | 325 | 29 | len: obj.len(), | 326 | 29 | index: 0, | 327 | 29 | phantom: PhantomData, | 328 | 29 | } | 329 | 29 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>>>::new Line | Count | Source | 322 | 4 | pub fn new(obj: &'rb RB) -> Self { | 323 | 4 | Self { | 324 | 4 | obj, | 325 | 4 | len: obj.len(), | 326 | 4 | index: 0, | 327 | 4 | phantom: PhantomData, | 328 | 4 | } | 329 | 4 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize>>>::new Line | Count | Source | 322 | 10 | pub fn new(obj: &'rb RB) -> Self { | 323 | 10 | Self { | 324 | 10 | obj, | 325 | 10 | len: obj.len(), | 326 | 10 | index: 0, | 327 | 10 | phantom: PhantomData, | 328 | 10 | } | 329 | 10 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<&str, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str>>>::new Line | Count | Source | 322 | 1 | pub fn new(obj: &'rb RB) -> Self { | 323 | 1 | Self { | 324 | 1 | obj, | 325 | 1 | len: obj.len(), | 326 | 1 | index: 0, | 327 | 1 | phantom: PhantomData, | 328 | 1 | } | 329 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize>>>::new Line | Count | Source | 322 | 2 | pub fn new(obj: &'rb RB) -> Self { | 323 | 2 | Self { | 324 | 2 | obj, | 325 | 2 | len: obj.len(), | 326 | 2 | index: 0, | 327 | 2 | phantom: PhantomData, | 328 | 2 | } | 329 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>>>::new Line | Count | Source | 322 | 12 | pub fn new(obj: &'rb RB) -> Self { | 323 | 12 | Self { | 324 | 12 | obj, | 325 | 12 | len: obj.len(), | 326 | 12 | index: 0, | 327 | 12 | phantom: PhantomData, | 328 | 12 | } | 329 | 12 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<&str, ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize>>>::new Line | Count | Source | 322 | 1 | pub fn new(obj: &'rb RB) -> Self { | 323 | 1 | Self { | 324 | 1 | obj, | 325 | 1 | len: obj.len(), | 326 | 1 | index: 0, | 327 | 1 | phantom: PhantomData, | 328 | 1 | } | 329 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize>>>::new Line | Count | Source | 322 | 2 | pub fn new(obj: &'rb RB) -> Self { | 323 | 2 | Self { | 324 | 2 | obj, | 325 | 2 | len: obj.len(), | 326 | 2 | index: 0, | 327 | 2 | phantom: PhantomData, | 328 | 2 | } | 329 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize>>>::new Line | Count | Source | 322 | 2 | pub fn new(obj: &'rb RB) -> Self { | 323 | 2 | Self { | 324 | 2 | obj, | 325 | 2 | len: obj.len(), | 326 | 2 | index: 0, | 327 | 2 | phantom: PhantomData, | 328 | 2 | } | 329 | 2 | } |
|
330 | | } |
331 | | |
332 | | impl<'rb, T: 'rb, RB: RingBuffer<T>> Iterator for RingBufferIterator<'rb, T, RB> { |
333 | | type Item = &'rb T; |
334 | | |
335 | | #[inline] |
336 | 11.8k | fn next(&mut self) -> Option<Self::Item> { |
337 | 11.8k | if self.index < self.len { |
338 | 11.6k | let res = self.obj.get(self.index); |
339 | 11.6k | self.index += 1; |
340 | 11.6k | res |
341 | | } else { |
342 | 181 | None |
343 | | } |
344 | 11.8k | } <ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 6 | fn next(&mut self) -> Option<Self::Item> { | 337 | 6 | if self.index < self.len { | 338 | 4 | let res = self.obj.get(self.index); | 339 | 4 | self.index += 1; | 340 | 4 | res | 341 | | } else { | 342 | 2 | None | 343 | | } | 344 | 6 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 6 | fn next(&mut self) -> Option<Self::Item> { | 337 | 6 | if self.index < self.len { | 338 | 4 | let res = self.obj.get(self.index); | 339 | 4 | self.index += 1; | 340 | 4 | res | 341 | | } else { | 342 | 2 | None | 343 | | } | 344 | 6 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 80 | fn next(&mut self) -> Option<Self::Item> { | 337 | 80 | if self.index < self.len { | 338 | 60 | let res = self.obj.get(self.index); | 339 | 60 | self.index += 1; | 340 | 60 | res | 341 | | } else { | 342 | 20 | None | 343 | | } | 344 | 80 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 80 | fn next(&mut self) -> Option<Self::Item> { | 337 | 80 | if self.index < self.len { | 338 | 60 | let res = self.obj.get(self.index); | 339 | 60 | self.index += 1; | 340 | 60 | res | 341 | | } else { | 342 | 20 | None | 343 | | } | 344 | 80 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 30 | fn next(&mut self) -> Option<Self::Item> { | 337 | 30 | if self.index < self.len { | 338 | 20 | let res = self.obj.get(self.index); | 339 | 20 | self.index += 1; | 340 | 20 | res | 341 | | } else { | 342 | 10 | None | 343 | | } | 344 | 30 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 6 | fn next(&mut self) -> Option<Self::Item> { | 337 | 6 | if self.index < self.len { | 338 | 4 | let res = self.obj.get(self.index); | 339 | 4 | self.index += 1; | 340 | 4 | res | 341 | | } else { | 342 | 2 | None | 343 | | } | 344 | 6 | } |
Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferIterator<_, _> as core::iter::traits::iterator::Iterator>::next <ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 80 | fn next(&mut self) -> Option<Self::Item> { | 337 | 80 | if self.index < self.len { | 338 | 60 | let res = self.obj.get(self.index); | 339 | 60 | self.index += 1; | 340 | 60 | res | 341 | | } else { | 342 | 20 | None | 343 | | } | 344 | 80 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 80 | fn next(&mut self) -> Option<Self::Item> { | 337 | 80 | if self.index < self.len { | 338 | 60 | let res = self.obj.get(self.index); | 339 | 60 | self.index += 1; | 340 | 60 | res | 341 | | } else { | 342 | 20 | None | 343 | | } | 344 | 80 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 30 | fn next(&mut self) -> Option<Self::Item> { | 337 | 30 | if self.index < self.len { | 338 | 20 | let res = self.obj.get(self.index); | 339 | 20 | self.index += 1; | 340 | 20 | res | 341 | | } else { | 342 | 10 | None | 343 | | } | 344 | 30 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 6 | fn next(&mut self) -> Option<Self::Item> { | 337 | 6 | if self.index < self.len { | 338 | 4 | let res = self.obj.get(self.index); | 339 | 4 | self.index += 1; | 340 | 4 | res | 341 | | } else { | 342 | 2 | None | 343 | | } | 344 | 6 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 6 | fn next(&mut self) -> Option<Self::Item> { | 337 | 6 | if self.index < self.len { | 338 | 4 | let res = self.obj.get(self.index); | 339 | 4 | self.index += 1; | 340 | 4 | res | 341 | | } else { | 342 | 2 | None | 343 | | } | 344 | 6 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 6 | fn next(&mut self) -> Option<Self::Item> { | 337 | 6 | if self.index < self.len { | 338 | 4 | let res = self.obj.get(self.index); | 339 | 4 | self.index += 1; | 340 | 4 | res | 341 | | } else { | 342 | 2 | None | 343 | | } | 344 | 6 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 2.05k | fn next(&mut self) -> Option<Self::Item> { | 337 | 2.05k | if self.index < self.len { | 338 | 2.04k | let res = self.obj.get(self.index); | 339 | 2.04k | self.index += 1; | 340 | 2.04k | res | 341 | | } else { | 342 | 2 | None | 343 | | } | 344 | 2.05k | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<&str, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<&str>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 3 | fn next(&mut self) -> Option<Self::Item> { | 337 | 3 | if self.index < self.len { | 338 | 3 | let res = self.obj.get(self.index); | 339 | 3 | self.index += 1; | 340 | 3 | res | 341 | | } else { | 342 | 0 | None | 343 | | } | 344 | 3 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 39 | fn next(&mut self) -> Option<Self::Item> { | 337 | 39 | if self.index < self.len { | 338 | 31 | let res = self.obj.get(self.index); | 339 | 31 | self.index += 1; | 340 | 31 | res | 341 | | } else { | 342 | 8 | None | 343 | | } | 344 | 39 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 9.09k | fn next(&mut self) -> Option<Self::Item> { | 337 | 9.09k | if self.index < self.len { | 338 | 9.08k | let res = self.obj.get(self.index); | 339 | 9.08k | self.index += 1; | 340 | 9.08k | res | 341 | | } else { | 342 | 15 | None | 343 | | } | 344 | 9.09k | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 104 | fn next(&mut self) -> Option<Self::Item> { | 337 | 104 | if self.index < self.len { | 338 | 83 | let res = self.obj.get(self.index); | 339 | 83 | self.index += 1; | 340 | 83 | res | 341 | | } else { | 342 | 21 | None | 343 | | } | 344 | 104 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 11 | fn next(&mut self) -> Option<Self::Item> { | 337 | 11 | if self.index < self.len { | 338 | 8 | let res = self.obj.get(self.index); | 339 | 8 | self.index += 1; | 340 | 8 | res | 341 | | } else { | 342 | 3 | None | 343 | | } | 344 | 11 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 40 | fn next(&mut self) -> Option<Self::Item> { | 337 | 40 | if self.index < self.len { | 338 | 30 | let res = self.obj.get(self.index); | 339 | 30 | self.index += 1; | 340 | 30 | res | 341 | | } else { | 342 | 10 | None | 343 | | } | 344 | 40 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<&str, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 3 | fn next(&mut self) -> Option<Self::Item> { | 337 | 3 | if self.index < self.len { | 338 | 3 | let res = self.obj.get(self.index); | 339 | 3 | self.index += 1; | 340 | 3 | res | 341 | | } else { | 342 | 0 | None | 343 | | } | 344 | 3 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 8 | fn next(&mut self) -> Option<Self::Item> { | 337 | 8 | if self.index < self.len { | 338 | 6 | let res = self.obj.get(self.index); | 339 | 6 | self.index += 1; | 340 | 6 | res | 341 | | } else { | 342 | 2 | None | 343 | | } | 344 | 8 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 33 | fn next(&mut self) -> Option<Self::Item> { | 337 | 33 | if self.index < self.len { | 338 | 27 | let res = self.obj.get(self.index); | 339 | 27 | self.index += 1; | 340 | 27 | res | 341 | | } else { | 342 | 6 | None | 343 | | } | 344 | 33 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<&str, ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 3 | fn next(&mut self) -> Option<Self::Item> { | 337 | 3 | if self.index < self.len { | 338 | 3 | let res = self.obj.get(self.index); | 339 | 3 | self.index += 1; | 340 | 3 | res | 341 | | } else { | 342 | 0 | None | 343 | | } | 344 | 3 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 336 | 13 | fn next(&mut self) -> Option<Self::Item> { | 337 | 13 | if self.index < self.len { | 338 | 11 | let res = self.obj.get(self.index); | 339 | 11 | self.index += 1; | 340 | 11 | res | 341 | | } else { | 342 | 2 | None | 343 | | } | 344 | 13 | } |
|
345 | | |
346 | 115 | fn size_hint(&self) -> (usize, Option<usize>) { |
347 | 115 | (self.len, Some(self.len)) |
348 | 115 | } <ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 2 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 2 | (self.len, Some(self.len)) | 348 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 10 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 10 | (self.len, Some(self.len)) | 348 | 10 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 10 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 10 | (self.len, Some(self.len)) | 348 | 10 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 10 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 10 | (self.len, Some(self.len)) | 348 | 10 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 2 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 2 | (self.len, Some(self.len)) | 348 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 2 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 2 | (self.len, Some(self.len)) | 348 | 2 | } |
Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferIterator<_, _> as core::iter::traits::iterator::Iterator>::size_hint <ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 2 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 2 | (self.len, Some(self.len)) | 348 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 2 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 2 | (self.len, Some(self.len)) | 348 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 2 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 2 | (self.len, Some(self.len)) | 348 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 10 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 10 | (self.len, Some(self.len)) | 348 | 10 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 10 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 10 | (self.len, Some(self.len)) | 348 | 10 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 10 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 10 | (self.len, Some(self.len)) | 348 | 10 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 11 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 11 | (self.len, Some(self.len)) | 348 | 11 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 2 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 2 | (self.len, Some(self.len)) | 348 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 10 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 10 | (self.len, Some(self.len)) | 348 | 10 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 2 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 2 | (self.len, Some(self.len)) | 348 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 3 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 3 | (self.len, Some(self.len)) | 348 | 3 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 2 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 2 | (self.len, Some(self.len)) | 348 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 3 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 3 | (self.len, Some(self.len)) | 348 | 3 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 346 | 10 | fn size_hint(&self) -> (usize, Option<usize>) { | 347 | 10 | (self.len, Some(self.len)) | 348 | 10 | } |
|
349 | | } |
350 | | |
351 | | impl<'rb, T: 'rb, RB: RingBuffer<T>> FusedIterator for RingBufferIterator<'rb, T, RB> {} |
352 | | |
353 | | impl<'rb, T: 'rb, RB: RingBuffer<T>> ExactSizeIterator for RingBufferIterator<'rb, T, RB> {} |
354 | | |
355 | | impl<'rb, T: 'rb, RB: RingBuffer<T>> DoubleEndedIterator for RingBufferIterator<'rb, T, RB> { |
356 | | #[inline] |
357 | 39 | fn next_back(&mut self) -> Option<Self::Item> { |
358 | 39 | if self.len > 0 && self.index < self.len { |
359 | 36 | let res = self.obj.get(self.len - 1); |
360 | 36 | self.len -= 1; |
361 | 36 | res |
362 | | } else { |
363 | 3 | None |
364 | | } |
365 | 39 | } Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferIterator<_, _> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back <ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize>> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back Line | Count | Source | 357 | 3 | fn next_back(&mut self) -> Option<Self::Item> { | 358 | 3 | if self.len > 0 && self.index < self.len { | 359 | 3 | let res = self.obj.get(self.len - 1); | 360 | 3 | self.len -= 1; | 361 | 3 | res | 362 | | } else { | 363 | 0 | None | 364 | | } | 365 | 3 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back Line | Count | Source | 357 | 13 | fn next_back(&mut self) -> Option<Self::Item> { | 358 | 13 | if self.len > 0 && self.index < self.len { | 359 | 12 | let res = self.obj.get(self.len - 1); | 360 | 12 | self.len -= 1; | 361 | 12 | res | 362 | | } else { | 363 | 1 | None | 364 | | } | 365 | 13 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back Line | Count | Source | 357 | 13 | fn next_back(&mut self) -> Option<Self::Item> { | 358 | 13 | if self.len > 0 && self.index < self.len { | 359 | 12 | let res = self.obj.get(self.len - 1); | 360 | 12 | self.len -= 1; | 361 | 12 | res | 362 | | } else { | 363 | 1 | None | 364 | | } | 365 | 13 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back Line | Count | Source | 357 | 10 | fn next_back(&mut self) -> Option<Self::Item> { | 358 | 10 | if self.len > 0 && self.index < self.len { | 359 | 9 | let res = self.obj.get(self.len - 1); | 360 | 9 | self.len -= 1; | 361 | 9 | res | 362 | | } else { | 363 | 1 | None | 364 | | } | 365 | 10 | } |
|
366 | | } |
367 | | |
368 | | /// `RingBufferMutIterator` holds a reference to a `RingBuffer` and iterates over it. `index` is the |
369 | | /// current iterator position. |
370 | | /// |
371 | | /// WARNING: NEVER ACCESS THE `obj` FIELD OUTSIDE OF NEXT. It's private on purpose, and |
372 | | /// can technically be accessed in the same module. However, this breaks the safety of `next()` |
373 | | pub struct RingBufferMutIterator<'rb, T, RB: RingBuffer<T>> { |
374 | | obj: NonNull<RB>, |
375 | | index: usize, |
376 | | len: usize, |
377 | | phantom: PhantomData<&'rb mut T>, |
378 | | } |
379 | | |
380 | | impl<'rb, T, RB: RingBuffer<T>> RingBufferMutIterator<'rb, T, RB> { |
381 | 15 | pub fn new(obj: &'rb mut RB) -> Self { |
382 | 15 | Self { |
383 | 15 | len: obj.len(), |
384 | 15 | obj: NonNull::from(obj), |
385 | 15 | index: 0, |
386 | 15 | phantom: PhantomData, |
387 | 15 | } |
388 | 15 | } Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<_, _>>::new <ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>>>::new Line | Count | Source | 381 | 3 | pub fn new(obj: &'rb mut RB) -> Self { | 382 | 3 | Self { | 383 | 3 | len: obj.len(), | 384 | 3 | obj: NonNull::from(obj), | 385 | 3 | index: 0, | 386 | 3 | phantom: PhantomData, | 387 | 3 | } | 388 | 3 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>>>::new Line | Count | Source | 381 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 382 | 2 | Self { | 383 | 2 | len: obj.len(), | 384 | 2 | obj: NonNull::from(obj), | 385 | 2 | index: 0, | 386 | 2 | phantom: PhantomData, | 387 | 2 | } | 388 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>>>::new Line | Count | Source | 381 | 5 | pub fn new(obj: &'rb mut RB) -> Self { | 382 | 5 | Self { | 383 | 5 | len: obj.len(), | 384 | 5 | obj: NonNull::from(obj), | 385 | 5 | index: 0, | 386 | 5 | phantom: PhantomData, | 387 | 5 | } | 388 | 5 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>>>::new Line | Count | Source | 381 | 5 | pub fn new(obj: &'rb mut RB) -> Self { | 382 | 5 | Self { | 383 | 5 | len: obj.len(), | 384 | 5 | obj: NonNull::from(obj), | 385 | 5 | index: 0, | 386 | 5 | phantom: PhantomData, | 387 | 5 | } | 388 | 5 | } |
|
389 | | } |
390 | | |
391 | | impl<'rb, T: 'rb, RB: RingBuffer<T> + 'rb> FusedIterator for RingBufferMutIterator<'rb, T, RB> {} |
392 | | |
393 | | impl<'rb, T: 'rb, RB: RingBuffer<T> + 'rb> ExactSizeIterator for RingBufferMutIterator<'rb, T, RB> {} |
394 | | |
395 | | impl<'rb, T: 'rb, RB: RingBuffer<T> + 'rb> DoubleEndedIterator |
396 | | for RingBufferMutIterator<'rb, T, RB> |
397 | | { |
398 | | #[inline] |
399 | 12 | fn next_back(&mut self) -> Option<Self::Item> { |
400 | 12 | if self.len > 0 && self.index < self.len { |
401 | 9 | self.len -= 1; |
402 | 9 | let res = unsafe { RB::ptr_get_mut(self.obj.as_ptr(), self.len) }; |
403 | 9 | res.map(|i| unsafe { &mut *i }) Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<_, _> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back::{closure#0} <ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back::{closure#0} Line | Count | Source | 403 | 3 | res.map(|i| unsafe { &mut *i }) |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back::{closure#0} Line | Count | Source | 403 | 3 | res.map(|i| unsafe { &mut *i }) |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back::{closure#0} Line | Count | Source | 403 | 3 | res.map(|i| unsafe { &mut *i }) |
|
404 | | } else { |
405 | 3 | None |
406 | | } |
407 | 12 | } Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<_, _> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back <ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back Line | Count | Source | 399 | 4 | fn next_back(&mut self) -> Option<Self::Item> { | 400 | 4 | if self.len > 0 && self.index < self.len { | 401 | 3 | self.len -= 1; | 402 | 3 | let res = unsafe { RB::ptr_get_mut(self.obj.as_ptr(), self.len) }; | 403 | 3 | res.map(|i| unsafe { &mut *i }) | 404 | | } else { | 405 | 1 | None | 406 | | } | 407 | 4 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back Line | Count | Source | 399 | 4 | fn next_back(&mut self) -> Option<Self::Item> { | 400 | 4 | if self.len > 0 && self.index < self.len { | 401 | 3 | self.len -= 1; | 402 | 3 | let res = unsafe { RB::ptr_get_mut(self.obj.as_ptr(), self.len) }; | 403 | 3 | res.map(|i| unsafe { &mut *i }) | 404 | | } else { | 405 | 1 | None | 406 | | } | 407 | 4 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back Line | Count | Source | 399 | 4 | fn next_back(&mut self) -> Option<Self::Item> { | 400 | 4 | if self.len > 0 && self.index < self.len { | 401 | 3 | self.len -= 1; | 402 | 3 | let res = unsafe { RB::ptr_get_mut(self.obj.as_ptr(), self.len) }; | 403 | 3 | res.map(|i| unsafe { &mut *i }) | 404 | | } else { | 405 | 1 | None | 406 | | } | 407 | 4 | } |
|
408 | | } |
409 | | |
410 | | impl<'rb, T, RB: RingBuffer<T> + 'rb> Iterator for RingBufferMutIterator<'rb, T, RB> { |
411 | | type Item = &'rb mut T; |
412 | | |
413 | 47 | fn next(&mut self) -> Option<Self::Item> { |
414 | 47 | if self.index < self.len { |
415 | 35 | let res = unsafe { RB::ptr_get_mut(self.obj.as_ptr(), self.index) }; |
416 | 35 | self.index += 1; |
417 | 35 | // Safety: ptr_get_mut always returns a valid pointer |
418 | 35 | res.map(|i| unsafe { &mut *i }) Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<_, _> as core::iter::traits::iterator::Iterator>::next::{closure#0} <ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>> as core::iter::traits::iterator::Iterator>::next::{closure#0} Line | Count | Source | 418 | 7 | res.map(|i| unsafe { &mut *i }) |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>> as core::iter::traits::iterator::Iterator>::next::{closure#0} Line | Count | Source | 418 | 4 | res.map(|i| unsafe { &mut *i }) |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next::{closure#0} Line | Count | Source | 418 | 13 | res.map(|i| unsafe { &mut *i }) |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next::{closure#0} Line | Count | Source | 418 | 11 | res.map(|i| unsafe { &mut *i }) |
|
419 | | } else { |
420 | 12 | None |
421 | | } |
422 | 47 | } Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<_, _> as core::iter::traits::iterator::Iterator>::next <ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 413 | 17 | fn next(&mut self) -> Option<Self::Item> { | 414 | 17 | if self.index < self.len { | 415 | 13 | let res = unsafe { RB::ptr_get_mut(self.obj.as_ptr(), self.index) }; | 416 | 13 | self.index += 1; | 417 | 13 | // Safety: ptr_get_mut always returns a valid pointer | 418 | 13 | res.map(|i| unsafe { &mut *i }) | 419 | | } else { | 420 | 4 | None | 421 | | } | 422 | 17 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 413 | 9 | fn next(&mut self) -> Option<Self::Item> { | 414 | 9 | if self.index < self.len { | 415 | 7 | let res = unsafe { RB::ptr_get_mut(self.obj.as_ptr(), self.index) }; | 416 | 7 | self.index += 1; | 417 | 7 | // Safety: ptr_get_mut always returns a valid pointer | 418 | 7 | res.map(|i| unsafe { &mut *i }) | 419 | | } else { | 420 | 2 | None | 421 | | } | 422 | 9 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 413 | 6 | fn next(&mut self) -> Option<Self::Item> { | 414 | 6 | if self.index < self.len { | 415 | 4 | let res = unsafe { RB::ptr_get_mut(self.obj.as_ptr(), self.index) }; | 416 | 4 | self.index += 1; | 417 | 4 | // Safety: ptr_get_mut always returns a valid pointer | 418 | 4 | res.map(|i| unsafe { &mut *i }) | 419 | | } else { | 420 | 2 | None | 421 | | } | 422 | 6 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 413 | 15 | fn next(&mut self) -> Option<Self::Item> { | 414 | 15 | if self.index < self.len { | 415 | 11 | let res = unsafe { RB::ptr_get_mut(self.obj.as_ptr(), self.index) }; | 416 | 11 | self.index += 1; | 417 | 11 | // Safety: ptr_get_mut always returns a valid pointer | 418 | 11 | res.map(|i| unsafe { &mut *i }) | 419 | | } else { | 420 | 4 | None | 421 | | } | 422 | 15 | } |
|
423 | | |
424 | 3 | fn size_hint(&self) -> (usize, Option<usize>) { |
425 | 3 | (self.len, Some(self.len)) |
426 | 3 | } Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<_, _> as core::iter::traits::iterator::Iterator>::size_hint <ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 424 | 1 | fn size_hint(&self) -> (usize, Option<usize>) { | 425 | 1 | (self.len, Some(self.len)) | 426 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 424 | 1 | fn size_hint(&self) -> (usize, Option<usize>) { | 425 | 1 | (self.len, Some(self.len)) | 426 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferMutIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 424 | 1 | fn size_hint(&self) -> (usize, Option<usize>) { | 425 | 1 | (self.len, Some(self.len)) | 426 | 1 | } |
|
427 | | } |
428 | | |
429 | | /// `RingBufferMutIterator` holds a reference to a `RingBuffer` and iterates over it. |
430 | | pub struct RingBufferDrainingIterator<'rb, T, RB: RingBuffer<T>> { |
431 | | obj: &'rb mut RB, |
432 | | phantom: PhantomData<T>, |
433 | | } |
434 | | |
435 | | impl<'rb, T, RB: RingBuffer<T>> RingBufferDrainingIterator<'rb, T, RB> { |
436 | | #[inline] |
437 | 914 | pub fn new(obj: &'rb mut RB) -> Self { |
438 | 914 | Self { |
439 | 914 | obj, |
440 | 914 | phantom: PhantomData, |
441 | 914 | } |
442 | 914 | } <ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize>>>::new Line | Count | Source | 437 | 14 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 14 | Self { | 439 | 14 | obj, | 440 | 14 | phantom: PhantomData, | 441 | 14 | } | 442 | 14 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>>>::new Line | Count | Source | 437 | 3 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 3 | Self { | 439 | 3 | obj, | 440 | 3 | phantom: PhantomData, | 441 | 3 | } | 442 | 3 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char>>>::new Line | Count | Source | 437 | 28 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 28 | Self { | 439 | 28 | obj, | 440 | 28 | phantom: PhantomData, | 441 | 28 | } | 442 | 28 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize>>>::new Line | Count | Source | 437 | 14 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 14 | Self { | 439 | 14 | obj, | 440 | 14 | phantom: PhantomData, | 441 | 14 | } | 442 | 14 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>>>::new Line | Count | Source | 437 | 3 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 3 | Self { | 439 | 3 | obj, | 440 | 3 | phantom: PhantomData, | 441 | 3 | } | 442 | 3 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<u8, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<u8>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 128usize>>>::new Line | Count | Source | 437 | 422 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 422 | Self { | 439 | 422 | obj, | 440 | 422 | phantom: PhantomData, | 441 | 422 | } | 442 | 422 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>>>::new Line | Count | Source | 437 | 80 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 80 | Self { | 439 | 80 | obj, | 440 | 80 | phantom: PhantomData, | 441 | 80 | } | 442 | 80 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<alloc::vec::Vec<i32>, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<alloc::vec::Vec<i32>>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>>>::new Line | Count | Source | 437 | 19 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 19 | Self { | 439 | 19 | obj, | 440 | 19 | phantom: PhantomData, | 441 | 19 | } | 442 | 19 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize>>>::new Line | Count | Source | 437 | 10 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 10 | Self { | 439 | 10 | obj, | 440 | 10 | phantom: PhantomData, | 441 | 10 | } | 442 | 10 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<&str, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str>>>::new Line | Count | Source | 437 | 1 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 1 | Self { | 439 | 1 | obj, | 440 | 1 | phantom: PhantomData, | 441 | 1 | } | 442 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<usize, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<usize>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>>>::new Line | Count | Source | 437 | 37 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 37 | Self { | 439 | 37 | obj, | 440 | 37 | phantom: PhantomData, | 441 | 37 | } | 442 | 37 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<u8, ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 4usize>>>::new Line | Count | Source | 437 | 1 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 1 | Self { | 439 | 1 | obj, | 440 | 1 | phantom: PhantomData, | 441 | 1 | } | 442 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<usize, ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 10usize>>>::new Line | Count | Source | 437 | 1 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 1 | Self { | 439 | 1 | obj, | 440 | 1 | phantom: PhantomData, | 441 | 1 | } | 442 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<&str, ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize>>>::new Line | Count | Source | 437 | 1 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 1 | Self { | 439 | 1 | obj, | 440 | 1 | phantom: PhantomData, | 441 | 1 | } | 442 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<u8, ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 8usize>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<usize, ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 17usize>>>::new Line | Count | Source | 437 | 78 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 78 | Self { | 439 | 78 | obj, | 440 | 78 | phantom: PhantomData, | 441 | 78 | } | 442 | 78 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<ringbuffer::tests::test_dropping::Dropee, ringbuffer::with_const_generics::ConstGenericRingBuffer<ringbuffer::tests::test_dropping::Dropee, 1usize>>>::new Line | Count | Source | 437 | 1 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 1 | Self { | 439 | 1 | obj, | 440 | 1 | phantom: PhantomData, | 441 | 1 | } | 442 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<usize, ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 128usize>>>::new Line | Count | Source | 437 | 78 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 78 | Self { | 439 | 78 | obj, | 440 | 78 | phantom: PhantomData, | 441 | 78 | } | 442 | 78 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize>>>::new Line | Count | Source | 437 | 2 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 2 | Self { | 439 | 2 | obj, | 440 | 2 | phantom: PhantomData, | 441 | 2 | } | 442 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<ringbuffer::tests::test_dropping::Dropee, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<ringbuffer::tests::test_dropping::Dropee>>>::new Line | Count | Source | 437 | 1 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 1 | Self { | 439 | 1 | obj, | 440 | 1 | phantom: PhantomData, | 441 | 1 | } | 442 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize>>>::new Line | Count | Source | 437 | 16 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 16 | Self { | 439 | 16 | obj, | 440 | 16 | phantom: PhantomData, | 441 | 16 | } | 442 | 16 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>>>::new Line | Count | Source | 437 | 1 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 1 | Self { | 439 | 1 | obj, | 440 | 1 | phantom: PhantomData, | 441 | 1 | } | 442 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<usize, ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 70usize>>>::new Line | Count | Source | 437 | 78 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 78 | Self { | 439 | 78 | obj, | 440 | 78 | phantom: PhantomData, | 441 | 78 | } | 442 | 78 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<usize, ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 8usize>>>::new Line | Count | Source | 437 | 1 | pub fn new(obj: &'rb mut RB) -> Self { | 438 | 1 | Self { | 439 | 1 | obj, | 440 | 1 | phantom: PhantomData, | 441 | 1 | } | 442 | 1 | } |
|
443 | | } |
444 | | |
445 | | impl<'rb, T, RB: RingBuffer<T>> Iterator for RingBufferDrainingIterator<'rb, T, RB> { |
446 | | type Item = T; |
447 | | |
448 | 25.6k | fn next(&mut self) -> Option<T> { |
449 | 25.6k | self.obj.dequeue() |
450 | 25.6k | } <ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 6 | fn next(&mut self) -> Option<T> { | 449 | 6 | self.obj.dequeue() | 450 | 6 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 38 | fn next(&mut self) -> Option<T> { | 449 | 38 | self.obj.dequeue() | 450 | 38 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 6 | fn next(&mut self) -> Option<T> { | 449 | 6 | self.obj.dequeue() | 450 | 6 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 8 | fn next(&mut self) -> Option<T> { | 449 | 8 | self.obj.dequeue() | 450 | 8 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 4 | fn next(&mut self) -> Option<T> { | 449 | 4 | self.obj.dequeue() | 450 | 4 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 76 | fn next(&mut self) -> Option<T> { | 449 | 76 | self.obj.dequeue() | 450 | 76 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 4 | fn next(&mut self) -> Option<T> { | 449 | 4 | self.obj.dequeue() | 450 | 4 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 38 | fn next(&mut self) -> Option<T> { | 449 | 38 | self.obj.dequeue() | 450 | 38 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 6 | fn next(&mut self) -> Option<T> { | 449 | 6 | self.obj.dequeue() | 450 | 6 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 6 | fn next(&mut self) -> Option<T> { | 449 | 6 | self.obj.dequeue() | 450 | 6 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 8 | fn next(&mut self) -> Option<T> { | 449 | 8 | self.obj.dequeue() | 450 | 8 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<u8, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<u8>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 14 | fn next(&mut self) -> Option<T> { | 449 | 14 | self.obj.dequeue() | 450 | 14 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 128usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 22.4k | fn next(&mut self) -> Option<T> { | 449 | 22.4k | self.obj.dequeue() | 450 | 22.4k | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 235 | fn next(&mut self) -> Option<T> { | 449 | 235 | self.obj.dequeue() | 450 | 235 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<alloc::vec::Vec<i32>, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<alloc::vec::Vec<i32>>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 4 | fn next(&mut self) -> Option<T> { | 449 | 4 | self.obj.dequeue() | 450 | 4 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 51 | fn next(&mut self) -> Option<T> { | 449 | 51 | self.obj.dequeue() | 450 | 51 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 40 | fn next(&mut self) -> Option<T> { | 449 | 40 | self.obj.dequeue() | 450 | 40 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<&str, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 4 | fn next(&mut self) -> Option<T> { | 449 | 4 | self.obj.dequeue() | 450 | 4 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 8 | fn next(&mut self) -> Option<T> { | 449 | 8 | self.obj.dequeue() | 450 | 8 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<usize, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 10 | fn next(&mut self) -> Option<T> { | 449 | 10 | self.obj.dequeue() | 450 | 10 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 105 | fn next(&mut self) -> Option<T> { | 449 | 105 | self.obj.dequeue() | 450 | 105 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<u8, ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 4usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 5 | fn next(&mut self) -> Option<T> { | 449 | 5 | self.obj.dequeue() | 450 | 5 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<usize, ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 10usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 1 | fn next(&mut self) -> Option<T> { | 449 | 1 | self.obj.dequeue() | 450 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<ringbuffer::tests::test_dropping::Dropee, ringbuffer::with_const_generics::ConstGenericRingBuffer<ringbuffer::tests::test_dropping::Dropee, 1usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 2 | fn next(&mut self) -> Option<T> { | 449 | 2 | self.obj.dequeue() | 450 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<&str, ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 4 | fn next(&mut self) -> Option<T> { | 449 | 4 | self.obj.dequeue() | 450 | 4 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<u8, ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 8usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 18 | fn next(&mut self) -> Option<T> { | 449 | 18 | self.obj.dequeue() | 450 | 18 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<ringbuffer::tests::test_dropping::Dropee, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<ringbuffer::tests::test_dropping::Dropee>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 2 | fn next(&mut self) -> Option<T> { | 449 | 2 | self.obj.dequeue() | 450 | 2 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<usize, ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 17usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 138 | fn next(&mut self) -> Option<T> { | 449 | 138 | self.obj.dequeue() | 450 | 138 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<usize, ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 128usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 138 | fn next(&mut self) -> Option<T> { | 449 | 138 | self.obj.dequeue() | 450 | 138 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 2.05k | fn next(&mut self) -> Option<T> { | 449 | 2.05k | self.obj.dequeue() | 450 | 2.05k | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 46 | fn next(&mut self) -> Option<T> { | 449 | 46 | self.obj.dequeue() | 450 | 46 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 4 | fn next(&mut self) -> Option<T> { | 449 | 4 | self.obj.dequeue() | 450 | 4 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<usize, ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 70usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 138 | fn next(&mut self) -> Option<T> { | 449 | 138 | self.obj.dequeue() | 450 | 138 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<usize, ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 8usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 9 | fn next(&mut self) -> Option<T> { | 449 | 9 | self.obj.dequeue() | 450 | 9 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 448 | 16 | fn next(&mut self) -> Option<T> { | 449 | 16 | self.obj.dequeue() | 450 | 16 | } |
|
451 | | |
452 | 4 | fn size_hint(&self) -> (usize, Option<usize>) { |
453 | 4 | (self.obj.len(), Some(self.obj.len())) |
454 | 4 | } <ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 452 | 1 | fn size_hint(&self) -> (usize, Option<usize>) { | 453 | 1 | (self.obj.len(), Some(self.obj.len())) | 454 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 452 | 1 | fn size_hint(&self) -> (usize, Option<usize>) { | 453 | 1 | (self.obj.len(), Some(self.obj.len())) | 454 | 1 | } |
Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<_, _> as core::iter::traits::iterator::Iterator>::size_hint <ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 452 | 1 | fn size_hint(&self) -> (usize, Option<usize>) { | 453 | 1 | (self.obj.len(), Some(self.obj.len())) | 454 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<char, ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize>> as core::iter::traits::iterator::Iterator>::size_hint Line | Count | Source | 452 | 1 | fn size_hint(&self) -> (usize, Option<usize>) { | 453 | 1 | (self.obj.len(), Some(self.obj.len())) | 454 | 1 | } |
Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferDrainingIterator<_, _> as core::iter::traits::iterator::Iterator>::size_hint |
455 | | } |
456 | | |
457 | | /// `RingBufferIntoIterator` holds a `RingBuffer` and iterates over it. |
458 | | pub struct RingBufferIntoIterator<T, RB: RingBuffer<T>> { |
459 | | obj: RB, |
460 | | phantom: PhantomData<T>, |
461 | | } |
462 | | |
463 | | impl<T, RB: RingBuffer<T>> RingBufferIntoIterator<T, RB> { |
464 | | #[inline] |
465 | 3 | pub fn new(obj: RB) -> Self { |
466 | 3 | Self { |
467 | 3 | obj, |
468 | 3 | phantom: PhantomData, |
469 | 3 | } |
470 | 3 | } Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferIntoIterator<_, _>>::new <ringbuffer::ringbuffer_trait::iter::RingBufferIntoIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>>>::new Line | Count | Source | 465 | 1 | pub fn new(obj: RB) -> Self { | 466 | 1 | Self { | 467 | 1 | obj, | 468 | 1 | phantom: PhantomData, | 469 | 1 | } | 470 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIntoIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>>>::new Line | Count | Source | 465 | 1 | pub fn new(obj: RB) -> Self { | 466 | 1 | Self { | 467 | 1 | obj, | 468 | 1 | phantom: PhantomData, | 469 | 1 | } | 470 | 1 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIntoIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>>>::new Line | Count | Source | 465 | 1 | pub fn new(obj: RB) -> Self { | 466 | 1 | Self { | 467 | 1 | obj, | 468 | 1 | phantom: PhantomData, | 469 | 1 | } | 470 | 1 | } |
|
471 | | } |
472 | | |
473 | | impl<T, RB: RingBuffer<T>> Iterator for RingBufferIntoIterator<T, RB> { |
474 | | type Item = T; |
475 | | |
476 | | #[inline] |
477 | 24 | fn next(&mut self) -> Option<Self::Item> { |
478 | 24 | self.obj.dequeue() |
479 | 24 | } Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferIntoIterator<_, _> as core::iter::traits::iterator::Iterator>::next <ringbuffer::ringbuffer_trait::iter::RingBufferIntoIterator<i32, ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 477 | 8 | fn next(&mut self) -> Option<Self::Item> { | 478 | 8 | self.obj.dequeue() | 479 | 8 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIntoIterator<i32, ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 477 | 8 | fn next(&mut self) -> Option<Self::Item> { | 478 | 8 | self.obj.dequeue() | 479 | 8 | } |
<ringbuffer::ringbuffer_trait::iter::RingBufferIntoIterator<i32, ringbuffer::with_alloc::vecdeque::GrowableAllocRingBuffer<i32>> as core::iter::traits::iterator::Iterator>::next Line | Count | Source | 477 | 8 | fn next(&mut self) -> Option<Self::Item> { | 478 | 8 | self.obj.dequeue() | 479 | 8 | } |
|
480 | | |
481 | 0 | fn size_hint(&self) -> (usize, Option<usize>) { |
482 | 0 | (self.obj.len(), Some(self.obj.len())) |
483 | 0 | } Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferIntoIterator<_, _> as core::iter::traits::iterator::Iterator>::size_hint Unexecuted instantiation: <ringbuffer::ringbuffer_trait::iter::RingBufferIntoIterator<_, _> as core::iter::traits::iterator::Iterator>::size_hint |
484 | | } |
485 | | } |
486 | | |
487 | | pub use iter::{ |
488 | | RingBufferDrainingIterator, RingBufferIntoIterator, RingBufferIterator, RingBufferMutIterator, |
489 | | }; |
490 | | |
491 | | /// Implement various functions on implementors of [`RingBuffer`]. |
492 | | /// This is to avoid duplicate code. |
493 | | macro_rules! impl_ringbuffer { |
494 | | ($readptr: ident, $writeptr: ident) => { |
495 | | #[inline] |
496 | 3.53M | unsafe fn ptr_len(rb: *const Self) -> usize { |
497 | 3.53M | (*rb).$writeptr - (*rb).$readptr |
498 | 3.53M | } <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 20 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 20 | (*rb).$writeptr - (*rb).$readptr | 498 | 20 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::ptr_len Line | Count | Source | 496 | 237 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 237 | (*rb).$writeptr - (*rb).$readptr | 498 | 237 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 21 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 21 | (*rb).$writeptr - (*rb).$readptr | 498 | 21 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 6 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 6 | (*rb).$writeptr - (*rb).$readptr | 498 | 6 | } |
Unexecuted instantiation: <ringbuffer::with_const_generics::ConstGenericRingBuffer<_, _> as ringbuffer::ringbuffer_trait::RingBuffer<_>>::ptr_len <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::ptr_len Line | Count | Source | 496 | 488 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 488 | (*rb).$writeptr - (*rb).$readptr | 498 | 488 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 20 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 20 | (*rb).$writeptr - (*rb).$readptr | 498 | 20 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 50usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 6 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 6 | (*rb).$writeptr - (*rb).$readptr | 498 | 6 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 21 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 21 | (*rb).$writeptr - (*rb).$readptr | 498 | 21 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::ptr_len Line | Count | Source | 496 | 237 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 237 | (*rb).$writeptr - (*rb).$readptr | 498 | 237 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::ptr_len Line | Count | Source | 496 | 42 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 42 | (*rb).$writeptr - (*rb).$readptr | 498 | 42 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::ptr_len Line | Count | Source | 496 | 6.25k | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 6.25k | (*rb).$writeptr - (*rb).$readptr | 498 | 6.25k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 214 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 214 | (*rb).$writeptr - (*rb).$readptr | 498 | 214 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 220 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 220 | (*rb).$writeptr - (*rb).$readptr | 498 | 220 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 70usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::ptr_len Line | Count | Source | 496 | 3.64k | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 3.64k | (*rb).$writeptr - (*rb).$readptr | 498 | 3.64k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::ptr_len Line | Count | Source | 496 | 14 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 14 | (*rb).$writeptr - (*rb).$readptr | 498 | 14 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::ptr_len Line | Count | Source | 496 | 49 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 49 | (*rb).$writeptr - (*rb).$readptr | 498 | 49 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<ringbuffer::tests::test_dropping::Dropee, 1usize> as ringbuffer::ringbuffer_trait::RingBuffer<ringbuffer::tests::test_dropping::Dropee>>::ptr_len Line | Count | Source | 496 | 4 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 4 | (*rb).$writeptr - (*rb).$readptr | 498 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 1.60M | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 1.60M | (*rb).$writeptr - (*rb).$readptr | 498 | 1.60M | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 10usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::ptr_len Line | Count | Source | 496 | 101k | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 101k | (*rb).$writeptr - (*rb).$readptr | 498 | 101k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::ptr_len Line | Count | Source | 496 | 21 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 21 | (*rb).$writeptr - (*rb).$readptr | 498 | 21 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 99.4k | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 99.4k | (*rb).$writeptr - (*rb).$readptr | 498 | 99.4k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 131 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 131 | (*rb).$writeptr - (*rb).$readptr | 498 | 131 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 17usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::ptr_len Line | Count | Source | 496 | 1.31k | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 1.31k | (*rb).$writeptr - (*rb).$readptr | 498 | 1.31k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 60 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 60 | (*rb).$writeptr - (*rb).$readptr | 498 | 60 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 15.1k | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 15.1k | (*rb).$writeptr - (*rb).$readptr | 498 | 15.1k | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::ptr_len Line | Count | Source | 496 | 28 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 28 | (*rb).$writeptr - (*rb).$readptr | 498 | 28 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<alloc::vec::Vec<i32>> as ringbuffer::ringbuffer_trait::RingBuffer<alloc::vec::Vec<i32>>>::ptr_len Line | Count | Source | 496 | 8 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 8 | (*rb).$writeptr - (*rb).$readptr | 498 | 8 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<u8> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::ptr_len Line | Count | Source | 496 | 63 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 63 | (*rb).$writeptr - (*rb).$readptr | 498 | 63 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::ptr_len Line | Count | Source | 496 | 101k | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 101k | (*rb).$writeptr - (*rb).$readptr | 498 | 101k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<ringbuffer::tests::test_dropping::Dropee> as ringbuffer::ringbuffer_trait::RingBuffer<ringbuffer::tests::test_dropping::Dropee>>::ptr_len Line | Count | Source | 496 | 4 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 4 | (*rb).$writeptr - (*rb).$readptr | 498 | 4 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::ptr_len Line | Count | Source | 496 | 14 | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 14 | (*rb).$writeptr - (*rb).$readptr | 498 | 14 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_len Line | Count | Source | 496 | 1.60M | unsafe fn ptr_len(rb: *const Self) -> usize { | 497 | 1.60M | (*rb).$writeptr - (*rb).$readptr | 498 | 1.60M | } |
|
499 | | }; |
500 | | } |
501 | | |
502 | | /// Implement various functions on implementors of [`RingBuffer`]. |
503 | | /// This is to avoid duplicate code. |
504 | | macro_rules! impl_ringbuffer_ext { |
505 | | ($get_unchecked: ident, $get_unchecked_mut: ident, $readptr: ident, $writeptr: ident, $mask: expr) => { |
506 | | #[inline] |
507 | 400k | fn get_signed(&self, index: isize) -> Option<&T> { |
508 | 400k | use core::ops::Not; |
509 | 400k | self.is_empty().not().then(move || { |
510 | | let index_from_readptr = if index >= 0 { |
511 | | index |
512 | | } else { |
513 | | self.len() as isize + index |
514 | | }; |
515 | | |
516 | | let normalized_index = |
517 | | self.$readptr as isize + index_from_readptr.rem_euclid(self.len() as isize); |
518 | | |
519 | | unsafe { |
520 | | // SAFETY: index has been modulo-ed to be within range |
521 | | // to be within bounds |
522 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index as usize)) |
523 | | } |
524 | 400k | }) |
525 | 400k | } Unexecuted instantiation: <ringbuffer::with_const_generics::ConstGenericRingBuffer<_, _> as ringbuffer::ringbuffer_trait::RingBuffer<_>>::get_signed Unexecuted instantiation: <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<_> as ringbuffer::ringbuffer_trait::RingBuffer<_>>::get_signed <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_signed Line | Count | Source | 507 | 9 | fn get_signed(&self, index: isize) -> Option<&T> { | 508 | 9 | use core::ops::Not; | 509 | 9 | self.is_empty().not().then(move || { | 510 | | let index_from_readptr = if index >= 0 { | 511 | | index | 512 | | } else { | 513 | | self.len() as isize + index | 514 | | }; | 515 | | | 516 | | let normalized_index = | 517 | | self.$readptr as isize + index_from_readptr.rem_euclid(self.len() as isize); | 518 | | | 519 | | unsafe { | 520 | | // SAFETY: index has been modulo-ed to be within range | 521 | | // to be within bounds | 522 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index as usize)) | 523 | | } | 524 | 9 | }) | 525 | 9 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::get_signed Line | Count | Source | 507 | 10 | fn get_signed(&self, index: isize) -> Option<&T> { | 508 | 10 | use core::ops::Not; | 509 | 10 | self.is_empty().not().then(move || { | 510 | | let index_from_readptr = if index >= 0 { | 511 | | index | 512 | | } else { | 513 | | self.len() as isize + index | 514 | | }; | 515 | | | 516 | | let normalized_index = | 517 | | self.$readptr as isize + index_from_readptr.rem_euclid(self.len() as isize); | 518 | | | 519 | | unsafe { | 520 | | // SAFETY: index has been modulo-ed to be within range | 521 | | // to be within bounds | 522 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index as usize)) | 523 | | } | 524 | 10 | }) | 525 | 10 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_signed Line | Count | Source | 507 | 200k | fn get_signed(&self, index: isize) -> Option<&T> { | 508 | 200k | use core::ops::Not; | 509 | 200k | self.is_empty().not().then(move || { | 510 | | let index_from_readptr = if index >= 0 { | 511 | | index | 512 | | } else { | 513 | | self.len() as isize + index | 514 | | }; | 515 | | | 516 | | let normalized_index = | 517 | | self.$readptr as isize + index_from_readptr.rem_euclid(self.len() as isize); | 518 | | | 519 | | unsafe { | 520 | | // SAFETY: index has been modulo-ed to be within range | 521 | | // to be within bounds | 522 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index as usize)) | 523 | | } | 524 | 200k | }) | 525 | 200k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::get_signed Line | Count | Source | 507 | 10 | fn get_signed(&self, index: isize) -> Option<&T> { | 508 | 10 | use core::ops::Not; | 509 | 10 | self.is_empty().not().then(move || { | 510 | | let index_from_readptr = if index >= 0 { | 511 | | index | 512 | | } else { | 513 | | self.len() as isize + index | 514 | | }; | 515 | | | 516 | | let normalized_index = | 517 | | self.$readptr as isize + index_from_readptr.rem_euclid(self.len() as isize); | 518 | | | 519 | | unsafe { | 520 | | // SAFETY: index has been modulo-ed to be within range | 521 | | // to be within bounds | 522 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index as usize)) | 523 | | } | 524 | 10 | }) | 525 | 10 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get_signed Line | Count | Source | 507 | 200k | fn get_signed(&self, index: isize) -> Option<&T> { | 508 | 200k | use core::ops::Not; | 509 | 200k | self.is_empty().not().then(move || { | 510 | | let index_from_readptr = if index >= 0 { | 511 | | index | 512 | | } else { | 513 | | self.len() as isize + index | 514 | | }; | 515 | | | 516 | | let normalized_index = | 517 | | self.$readptr as isize + index_from_readptr.rem_euclid(self.len() as isize); | 518 | | | 519 | | unsafe { | 520 | | // SAFETY: index has been modulo-ed to be within range | 521 | | // to be within bounds | 522 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index as usize)) | 523 | | } | 524 | 200k | }) | 525 | 200k | } |
|
526 | | |
527 | | #[inline] |
528 | 2.60k | fn get(&self, index: usize) -> Option<&T> { |
529 | 2.60k | use core::ops::Not; |
530 | 2.60k | self.is_empty().not().then(move || { |
531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); |
532 | | unsafe { |
533 | | // SAFETY: index has been modulo-ed to be within range |
534 | | // to be within bounds |
535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) |
536 | | } |
537 | 2.60k | }) |
538 | 2.60k | } <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::get Line | Count | Source | 528 | 60 | fn get(&self, index: usize) -> Option<&T> { | 529 | 60 | use core::ops::Not; | 530 | 60 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 60 | }) | 538 | 60 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get Line | Count | Source | 528 | 4 | fn get(&self, index: usize) -> Option<&T> { | 529 | 4 | use core::ops::Not; | 530 | 4 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 4 | }) | 538 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::get Line | Count | Source | 528 | 60 | fn get(&self, index: usize) -> Option<&T> { | 529 | 60 | use core::ops::Not; | 530 | 60 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 60 | }) | 538 | 60 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get Line | Count | Source | 528 | 4 | fn get(&self, index: usize) -> Option<&T> { | 529 | 4 | use core::ops::Not; | 530 | 4 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 4 | }) | 538 | 4 | } |
Unexecuted instantiation: <ringbuffer::with_const_generics::ConstGenericRingBuffer<_, _> as ringbuffer::ringbuffer_trait::RingBuffer<_>>::get Unexecuted instantiation: <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<_> as ringbuffer::ringbuffer_trait::RingBuffer<_>>::get <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get Line | Count | Source | 528 | 4 | fn get(&self, index: usize) -> Option<&T> { | 529 | 4 | use core::ops::Not; | 530 | 4 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 4 | }) | 538 | 4 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<char> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::get Line | Count | Source | 528 | 60 | fn get(&self, index: usize) -> Option<&T> { | 529 | 60 | use core::ops::Not; | 530 | 60 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 60 | }) | 538 | 60 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::get Line | Count | Source | 528 | 60 | fn get(&self, index: usize) -> Option<&T> { | 529 | 60 | use core::ops::Not; | 530 | 60 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 60 | }) | 538 | 60 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get Line | Count | Source | 528 | 4 | fn get(&self, index: usize) -> Option<&T> { | 529 | 4 | use core::ops::Not; | 530 | 4 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 4 | }) | 538 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<&str, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::get Line | Count | Source | 528 | 3 | fn get(&self, index: usize) -> Option<&T> { | 529 | 3 | use core::ops::Not; | 530 | 3 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 3 | }) | 538 | 3 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get Line | Count | Source | 528 | 56 | fn get(&self, index: usize) -> Option<&T> { | 529 | 56 | use core::ops::Not; | 530 | 56 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 56 | }) | 538 | 56 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::get Line | Count | Source | 528 | 8 | fn get(&self, index: usize) -> Option<&T> { | 529 | 8 | use core::ops::Not; | 530 | 8 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 8 | }) | 538 | 8 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get Line | Count | Source | 528 | 30 | fn get(&self, index: usize) -> Option<&T> { | 529 | 30 | use core::ops::Not; | 530 | 30 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 30 | }) | 538 | 30 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::get Line | Count | Source | 528 | 4 | fn get(&self, index: usize) -> Option<&T> { | 529 | 4 | use core::ops::Not; | 530 | 4 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 4 | }) | 538 | 4 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get Line | Count | Source | 528 | 31 | fn get(&self, index: usize) -> Option<&T> { | 529 | 31 | use core::ops::Not; | 530 | 31 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 31 | }) | 538 | 31 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get Line | Count | Source | 528 | 15 | fn get(&self, index: usize) -> Option<&T> { | 529 | 15 | use core::ops::Not; | 530 | 15 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 15 | }) | 538 | 15 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<char, 3usize> as ringbuffer::ringbuffer_trait::RingBuffer<char>>::get Line | Count | Source | 528 | 6 | fn get(&self, index: usize) -> Option<&T> { | 529 | 6 | use core::ops::Not; | 530 | 6 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 6 | }) | 538 | 6 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 7usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get Line | Count | Source | 528 | 14 | fn get(&self, index: usize) -> Option<&T> { | 529 | 14 | use core::ops::Not; | 530 | 14 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 14 | }) | 538 | 14 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 1024usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get Line | Count | Source | 528 | 2.04k | fn get(&self, index: usize) -> Option<&T> { | 529 | 2.04k | use core::ops::Not; | 530 | 2.04k | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 2.04k | }) | 538 | 2.04k | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::get Line | Count | Source | 528 | 122 | fn get(&self, index: usize) -> Option<&T> { | 529 | 122 | use core::ops::Not; | 530 | 122 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 122 | }) | 538 | 122 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<u8> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::get Line | Count | Source | 528 | 12 | fn get(&self, index: usize) -> Option<&T> { | 529 | 12 | use core::ops::Not; | 530 | 12 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 12 | }) | 538 | 12 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<&str> as ringbuffer::ringbuffer_trait::RingBuffer<&str>>::get Line | Count | Source | 528 | 3 | fn get(&self, index: usize) -> Option<&T> { | 529 | 3 | use core::ops::Not; | 530 | 3 | self.is_empty().not().then(move || { | 531 | | let normalized_index = self.$readptr + index.rem_euclid(self.len()); | 532 | | unsafe { | 533 | | // SAFETY: index has been modulo-ed to be within range | 534 | | // to be within bounds | 535 | | $get_unchecked(self, $mask(self.buffer_size(), normalized_index)) | 536 | | } | 537 | 3 | }) | 538 | 3 | } |
|
539 | | |
540 | | #[inline] |
541 | | #[doc(hidden)] |
542 | 14 | unsafe fn ptr_get_mut_signed(rb: *mut Self, index: isize) -> Option<*mut T> { |
543 | 14 | (Self::ptr_len(rb) != 0).then(move || { |
544 | | let index_from_readptr = if index >= 0 { |
545 | | index |
546 | | } else { |
547 | | Self::ptr_len(rb) as isize + index |
548 | | }; |
549 | | |
550 | | let normalized_index = (*rb).$readptr as isize |
551 | | + index_from_readptr.rem_euclid(Self::ptr_len(rb) as isize); |
552 | | |
553 | | unsafe { |
554 | | // SAFETY: index has been modulo-ed to be within range |
555 | | // to be within bounds |
556 | | $get_unchecked_mut( |
557 | | rb, |
558 | | $mask(Self::ptr_buffer_size(rb), normalized_index as usize), |
559 | | ) |
560 | | } |
561 | 14 | }) |
562 | 14 | } Unexecuted instantiation: <ringbuffer::with_const_generics::ConstGenericRingBuffer<_, _> as ringbuffer::ringbuffer_trait::RingBuffer<_>>::ptr_get_mut_signed Unexecuted instantiation: <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<_> as ringbuffer::ringbuffer_trait::RingBuffer<_>>::ptr_get_mut_signed <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_get_mut_signed Line | Count | Source | 542 | 1 | unsafe fn ptr_get_mut_signed(rb: *mut Self, index: isize) -> Option<*mut T> { | 543 | 1 | (Self::ptr_len(rb) != 0).then(move || { | 544 | | let index_from_readptr = if index >= 0 { | 545 | | index | 546 | | } else { | 547 | | Self::ptr_len(rb) as isize + index | 548 | | }; | 549 | | | 550 | | let normalized_index = (*rb).$readptr as isize | 551 | | + index_from_readptr.rem_euclid(Self::ptr_len(rb) as isize); | 552 | | | 553 | | unsafe { | 554 | | // SAFETY: index has been modulo-ed to be within range | 555 | | // to be within bounds | 556 | | $get_unchecked_mut( | 557 | | rb, | 558 | | $mask(Self::ptr_buffer_size(rb), normalized_index as usize), | 559 | | ) | 560 | | } | 561 | 1 | }) | 562 | 1 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_get_mut_signed Line | Count | Source | 542 | 6 | unsafe fn ptr_get_mut_signed(rb: *mut Self, index: isize) -> Option<*mut T> { | 543 | 6 | (Self::ptr_len(rb) != 0).then(move || { | 544 | | let index_from_readptr = if index >= 0 { | 545 | | index | 546 | | } else { | 547 | | Self::ptr_len(rb) as isize + index | 548 | | }; | 549 | | | 550 | | let normalized_index = (*rb).$readptr as isize | 551 | | + index_from_readptr.rem_euclid(Self::ptr_len(rb) as isize); | 552 | | | 553 | | unsafe { | 554 | | // SAFETY: index has been modulo-ed to be within range | 555 | | // to be within bounds | 556 | | $get_unchecked_mut( | 557 | | rb, | 558 | | $mask(Self::ptr_buffer_size(rb), normalized_index as usize), | 559 | | ) | 560 | | } | 561 | 6 | }) | 562 | 6 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_get_mut_signed Line | Count | Source | 542 | 7 | unsafe fn ptr_get_mut_signed(rb: *mut Self, index: isize) -> Option<*mut T> { | 543 | 7 | (Self::ptr_len(rb) != 0).then(move || { | 544 | | let index_from_readptr = if index >= 0 { | 545 | | index | 546 | | } else { | 547 | | Self::ptr_len(rb) as isize + index | 548 | | }; | 549 | | | 550 | | let normalized_index = (*rb).$readptr as isize | 551 | | + index_from_readptr.rem_euclid(Self::ptr_len(rb) as isize); | 552 | | | 553 | | unsafe { | 554 | | // SAFETY: index has been modulo-ed to be within range | 555 | | // to be within bounds | 556 | | $get_unchecked_mut( | 557 | | rb, | 558 | | $mask(Self::ptr_buffer_size(rb), normalized_index as usize), | 559 | | ) | 560 | | } | 561 | 7 | }) | 562 | 7 | } |
|
563 | | |
564 | | #[inline] |
565 | | #[doc(hidden)] |
566 | 42 | unsafe fn ptr_get_mut(rb: *mut Self, index: usize) -> Option<*mut T> { |
567 | 42 | (Self::ptr_len(rb) != 0).then(move || { |
568 | | let normalized_index = (*rb).$readptr + index.rem_euclid(Self::ptr_len(rb)); |
569 | | |
570 | | unsafe { |
571 | | // SAFETY: index has been modulo-ed to be within range |
572 | | // to be within bounds |
573 | | $get_unchecked_mut(rb, $mask(Self::ptr_buffer_size(rb), normalized_index)) |
574 | | } |
575 | 42 | }) |
576 | 42 | } Unexecuted instantiation: <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<_> as ringbuffer::ringbuffer_trait::RingBuffer<_>>::ptr_get_mut Unexecuted instantiation: <ringbuffer::with_const_generics::ConstGenericRingBuffer<_, _> as ringbuffer::ringbuffer_trait::RingBuffer<_>>::ptr_get_mut <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_get_mut Line | Count | Source | 566 | 15 | unsafe fn ptr_get_mut(rb: *mut Self, index: usize) -> Option<*mut T> { | 567 | 15 | (Self::ptr_len(rb) != 0).then(move || { | 568 | | let normalized_index = (*rb).$readptr + index.rem_euclid(Self::ptr_len(rb)); | 569 | | | 570 | | unsafe { | 571 | | // SAFETY: index has been modulo-ed to be within range | 572 | | // to be within bounds | 573 | | $get_unchecked_mut(rb, $mask(Self::ptr_buffer_size(rb), normalized_index)) | 574 | | } | 575 | 15 | }) | 576 | 15 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 2usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_get_mut Line | Count | Source | 566 | 6 | unsafe fn ptr_get_mut(rb: *mut Self, index: usize) -> Option<*mut T> { | 567 | 6 | (Self::ptr_len(rb) != 0).then(move || { | 568 | | let normalized_index = (*rb).$readptr + index.rem_euclid(Self::ptr_len(rb)); | 569 | | | 570 | | unsafe { | 571 | | // SAFETY: index has been modulo-ed to be within range | 572 | | // to be within bounds | 573 | | $get_unchecked_mut(rb, $mask(Self::ptr_buffer_size(rb), normalized_index)) | 574 | | } | 575 | 6 | }) | 576 | 6 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::ptr_get_mut Line | Count | Source | 566 | 21 | unsafe fn ptr_get_mut(rb: *mut Self, index: usize) -> Option<*mut T> { | 567 | 21 | (Self::ptr_len(rb) != 0).then(move || { | 568 | | let normalized_index = (*rb).$readptr + index.rem_euclid(Self::ptr_len(rb)); | 569 | | | 570 | | unsafe { | 571 | | // SAFETY: index has been modulo-ed to be within range | 572 | | // to be within bounds | 573 | | $get_unchecked_mut(rb, $mask(Self::ptr_buffer_size(rb), normalized_index)) | 574 | | } | 575 | 21 | }) | 576 | 21 | } |
|
577 | | |
578 | | #[inline] |
579 | 293 | fn clear(&mut self) { |
580 | 22.2k | for i in self.drain()293 { |
581 | 22.2k | drop(i); |
582 | 22.2k | } |
583 | | |
584 | 293 | self.$readptr = 0; |
585 | 293 | self.$writeptr = 0; |
586 | 293 | } Unexecuted instantiation: <ringbuffer::with_const_generics::ConstGenericRingBuffer<_, _> as ringbuffer::ringbuffer_trait::RingBuffer<_>>::clear Unexecuted instantiation: <ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<_> as ringbuffer::ringbuffer_trait::RingBuffer<_>>::clear <ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::clear Line | Count | Source | 579 | 33 | fn clear(&mut self) { | 580 | 60 | for i in self.drain()33 { | 581 | 60 | drop(i); | 582 | 60 | } | 583 | | | 584 | 33 | self.$readptr = 0; | 585 | 33 | self.$writeptr = 0; | 586 | 33 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::clear Line | Count | Source | 579 | 8 | fn clear(&mut self) { | 580 | 12 | for i in self.drain()8 { | 581 | 12 | drop(i); | 582 | 12 | } | 583 | | | 584 | 8 | self.$readptr = 0; | 585 | 8 | self.$writeptr = 0; | 586 | 8 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::clear Line | Count | Source | 579 | 1 | fn clear(&mut self) { | 580 | 8 | for i in self.drain()1 { | 581 | 8 | drop(i); | 582 | 8 | } | 583 | | | 584 | 1 | self.$readptr = 0; | 585 | 1 | self.$writeptr = 0; | 586 | 1 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 8usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::clear Line | Count | Source | 579 | 2 | fn clear(&mut self) { | 580 | 6 | for i in self.drain()2 { | 581 | 6 | drop(i); | 582 | 6 | } | 583 | | | 584 | 2 | self.$readptr = 0; | 585 | 2 | self.$writeptr = 0; | 586 | 2 | } |
Unexecuted instantiation: <ringbuffer::with_const_generics::ConstGenericRingBuffer<u8, 4usize> as ringbuffer::ringbuffer_trait::RingBuffer<u8>>::clear <ringbuffer::with_const_generics::ConstGenericRingBuffer<i32, 128usize> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::clear Line | Count | Source | 579 | 172 | fn clear(&mut self) { | 580 | 22.0k | for i in self.drain()172 { | 581 | 22.0k | drop(i); | 582 | 22.0k | } | 583 | | | 584 | 172 | self.$readptr = 0; | 585 | 172 | self.$writeptr = 0; | 586 | 172 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 70usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::clear Line | Count | Source | 579 | 33 | fn clear(&mut self) { | 580 | 60 | for i in self.drain()33 { | 581 | 60 | drop(i); | 582 | 60 | } | 583 | | | 584 | 33 | self.$readptr = 0; | 585 | 33 | self.$writeptr = 0; | 586 | 33 | } |
<ringbuffer::with_const_generics::ConstGenericRingBuffer<usize, 17usize> as ringbuffer::ringbuffer_trait::RingBuffer<usize>>::clear Line | Count | Source | 579 | 33 | fn clear(&mut self) { | 580 | 60 | for i in self.drain()33 { | 581 | 60 | drop(i); | 582 | 60 | } | 583 | | | 584 | 33 | self.$readptr = 0; | 585 | 33 | self.$writeptr = 0; | 586 | 33 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<alloc::vec::Vec<i32>> as ringbuffer::ringbuffer_trait::RingBuffer<alloc::vec::Vec<i32>>>::clear Line | Count | Source | 579 | 1 | fn clear(&mut self) { | 580 | 2 | for i in self.drain()1 { | 581 | 2 | drop(i); | 582 | 2 | } | 583 | | | 584 | 1 | self.$readptr = 0; | 585 | 1 | self.$writeptr = 0; | 586 | 1 | } |
<ringbuffer::with_alloc::alloc_ringbuffer::AllocRingBuffer<i32> as ringbuffer::ringbuffer_trait::RingBuffer<i32>>::clear Line | Count | Source | 579 | 10 | fn clear(&mut self) { | 580 | 18 | for i in self.drain()10 { | 581 | 18 | drop(i); | 582 | 18 | } | 583 | | | 584 | 10 | self.$readptr = 0; | 585 | 10 | self.$writeptr = 0; | 586 | 10 | } |
|
587 | | }; |
588 | | } |