|
1 | 1 | //! Bytes implementations for heapless types
|
2 | 2 |
|
3 |
| -use crate::Vec; |
4 |
| -use bytes::{buf::UninitSlice, Buf, BufMut}; |
| 3 | +use crate::{len_type::LenType, Vec}; |
| 4 | +use bytes::{buf::UninitSlice, BufMut}; |
5 | 5 |
|
6 |
| -unsafe impl<const N: usize> Buf for Vec<u8, N> { |
7 |
| - #[inline] |
8 |
| - fn remaining(&self) -> usize { |
9 |
| - self.len() |
10 |
| - } |
11 |
| - |
12 |
| - #[inline] |
13 |
| - fn chunk(&mut self) -> &[u8] { |
14 |
| - self.as_slice() |
15 |
| - } |
16 |
| - |
17 |
| - #[inline] |
18 |
| - unsafe fn advance(&mut self, cnt: usize) { |
19 |
| - assert!( |
20 |
| - cnt <= self.remaining(), |
21 |
| - "cannot advance past `remaining`: {:?} <= {:?}", |
22 |
| - cnt, |
23 |
| - self.remaining(), |
24 |
| - ); |
25 |
| - unsafe { |
26 |
| - // SAFETY: We've checked that `cnt` <= `self.remaining()` and we know that |
27 |
| - // `self.remaining()` <= `self.cap`. |
28 |
| - self.advance_unchecked(cnt); |
29 |
| - } |
30 |
| - } |
31 |
| -} |
32 |
| - |
33 |
| -unsafe impl<const N: usize> BufMut for Vec<u8, N> { |
| 6 | +unsafe impl<const N: usize, LenT: LenType> BufMut for Vec<u8, N, LenT> { |
34 | 7 | #[inline]
|
35 | 8 | fn remaining_mut(&self) -> usize {
|
36 | 9 | N - self.len()
|
@@ -59,29 +32,6 @@ mod tests {
|
59 | 32 | use crate::Vec;
|
60 | 33 | use bytes::BufMut;
|
61 | 34 |
|
62 |
| - #[test] |
63 |
| - #[should_panic] |
64 |
| - fn buf_advance_out_of_bounds() { |
65 |
| - let mut vec: Vec<u8, 8> = Vec::new(); |
66 |
| - vec.advance(9) |
67 |
| - } |
68 |
| - |
69 |
| - #[test] |
70 |
| - fn buf_remaining() { |
71 |
| - let mut vec: Vec<u8, 8> = Vec::new(); |
72 |
| - assert_eq!(vec.remaining(), 8); |
73 |
| - vec.push(42).unwrap(); |
74 |
| - assert_eq!(vec.remaining(), 7); |
75 |
| - } |
76 |
| - |
77 |
| - #[test] |
78 |
| - fn buf_chunk() { |
79 |
| - let mut vec: Vec<u8, 8> = Vec::new(); |
80 |
| - assert_eq!(vec.chunk().len(), 8); |
81 |
| - unsafe { vec.advance_mut(1) }; |
82 |
| - assert_eq!(vec.chunk().len(), 7); |
83 |
| - } |
84 |
| - |
85 | 35 | #[test]
|
86 | 36 | #[should_panic]
|
87 | 37 | fn buf_mut_advance_mut_out_of_bounds() {
|
|
0 commit comments