1
- use core :: { cmp , hint :: unreachable_unchecked , iter , mem :: MaybeUninit , slice } ;
2
- use std :: collections :: VecDeque ;
1
+ use alloc :: collections :: VecDeque ;
2
+ use core :: { cmp , hint :: unreachable_unchecked , mem :: MaybeUninit , slice } ;
3
3
4
4
pub struct RingBuffer {
5
5
buf : VecDeque < MaybeUninit < u8 > > ,
@@ -80,9 +80,7 @@ impl RingBuffer {
80
80
pub fn extend ( & mut self , data : & [ u8 ] ) {
81
81
let len = data. len ( ) ;
82
82
let data = data. as_ptr ( ) . cast :: < MaybeUninit < u8 > > ( ) ;
83
- let data = unsafe {
84
- slice:: from_raw_parts ( data, len)
85
- } ;
83
+ let data = unsafe { slice:: from_raw_parts ( data, len) } ;
86
84
self . buf . extend ( data) ;
87
85
}
88
86
@@ -160,7 +158,7 @@ impl RingBuffer {
160
158
let skip = cmp:: min ( a. len ( ) , start) ;
161
159
start -= skip;
162
160
let a = & a[ skip..] ;
163
- let b = & b [ start..] ;
161
+ let b = unsafe { b . get_unchecked ( start..) } ;
164
162
165
163
let mut remaining_copy_len = len;
166
164
@@ -169,7 +167,7 @@ impl RingBuffer {
169
167
copy_bytes_overshooting ( a, a_spare, copy_at_least) ;
170
168
remaining_copy_len -= copy_at_least;
171
169
172
- if remaining_copy_len== 0 {
170
+ if remaining_copy_len == 0 {
173
171
intermediate. disarmed = true ;
174
172
return ;
175
173
}
@@ -182,7 +180,7 @@ impl RingBuffer {
182
180
copy_bytes_overshooting ( a, b_spare, copy_at_least) ;
183
181
remaining_copy_len -= copy_at_least;
184
182
185
- if remaining_copy_len== 0 {
183
+ if remaining_copy_len == 0 {
186
184
intermediate. disarmed = true ;
187
185
return ;
188
186
}
@@ -194,7 +192,7 @@ impl RingBuffer {
194
192
copy_bytes_overshooting ( b, a_spare, copy_at_least) ;
195
193
remaining_copy_len -= copy_at_least;
196
194
197
- if remaining_copy_len== 0 {
195
+ if remaining_copy_len == 0 {
198
196
intermediate. disarmed = true ;
199
197
return ;
200
198
}
@@ -232,8 +230,8 @@ impl<'a> IntermediateRingBuffer<'a> {
232
230
let b_mid = remaining_init_len;
233
231
debug_assert ! ( b. len( ) >= b_mid) ;
234
232
235
- let ( a, a_spare) = a . split_at_mut ( a_mid) ;
236
- let ( b, b_spare) = b . split_at_mut ( b_mid) ;
233
+ let ( a, a_spare) = unsafe { a . split_at_mut_unchecked ( a_mid) } ;
234
+ let ( b, b_spare) = unsafe { b . split_at_mut_unchecked ( b_mid) } ;
237
235
debug_assert ! ( a_spare. is_empty( ) || b. is_empty( ) ) ;
238
236
239
237
(
0 commit comments