@@ -26,7 +26,7 @@ use core::{
26
26
ops:: { Deref , DerefMut } ,
27
27
} ;
28
28
29
- pub use slice:: BufferExt ;
29
+ pub use slice:: { ReadBufferExt , ReadBufferSlice , WriteBufferExt , WriteBufferSlice } ;
30
30
31
31
use stable_deref_trait:: StableDeref ;
32
32
@@ -204,7 +204,6 @@ unsafe impl<T: WriteTarget> WriteTarget for MaybeUninit<T> {
204
204
#[ cfg( test) ]
205
205
mod tests {
206
206
use super :: * ;
207
- use crate :: slice:: BufferExt ;
208
207
use core:: any:: Any ;
209
208
210
209
fn api_read < W , B > ( buffer : B ) -> ( * const W , usize )
@@ -236,122 +235,118 @@ mod tests {
236
235
const SIZE : usize = 128 ;
237
236
static BUF : [ u8 ; SIZE ] = [ 0u8 ; SIZE ] ;
238
237
{
239
- let buf_slice = ( & BUF ) . into_buffer_slice ( ..123 ) ;
238
+ let buf_slice = ( & BUF ) . into_read_buffer_slice ( ..123 ) . unwrap ( ) ;
240
239
let ( ptr, size_local) = api_read ( buf_slice) ;
241
240
assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
242
241
assert_eq ! ( size_local, 123 ) ;
243
242
}
244
243
245
244
{
246
- let buf_slice = ( & BUF ) . into_buffer_slice ( 5 ..123 ) ;
245
+ let buf_slice = ( & BUF ) . into_read_buffer_slice ( 5 ..123 ) . unwrap ( ) ;
247
246
let ( ptr, size_local) = api_read ( buf_slice) ;
248
247
assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
249
248
assert_eq ! ( size_local, 123 - 5 ) ;
250
249
}
251
250
252
251
{
253
- let buf_slice = ( & BUF ) . into_buffer_slice ( 5 ..) ;
252
+ let buf_slice = ( & BUF ) . into_read_buffer_slice ( 5 ..) . unwrap ( ) ;
254
253
let ( ptr, size_local) = api_read ( buf_slice) ;
255
254
assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
256
255
assert_eq ! ( size_local, SIZE - 5 ) ;
257
256
}
258
257
259
258
{
260
- let buf_slice = ( & BUF ) . into_buffer_slice ( ..) ;
259
+ let buf_slice = ( & BUF ) . into_read_buffer_slice ( ..) . unwrap ( ) ;
261
260
let ( ptr, size_local) = api_read ( buf_slice) ;
262
261
assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
263
262
assert_eq ! ( size_local, SIZE ) ;
264
263
}
265
264
266
265
{
267
- let buf_slice = ( & BUF ) . into_buffer_slice ( 0 ..SIZE ) ;
266
+ let buf_slice = ( & BUF ) . into_read_buffer_slice ( 0 ..SIZE ) . unwrap ( ) ;
268
267
let ( ptr, size_local) = api_read ( buf_slice) ;
269
268
assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
270
269
assert_eq ! ( size_local, SIZE ) ;
271
270
}
272
271
273
272
{
274
- let buf_slice = ( & BUF ) . into_buffer_slice ( 0 ..9999999999 ) ;
275
- let ( ptr, size_local) = api_read ( buf_slice) ;
276
- assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
277
- assert_eq ! ( size_local, SIZE ) ;
273
+ let buf_slice = ( & BUF ) . into_read_buffer_slice ( 0 ..9999999999 ) ;
274
+ assert ! ( buf_slice. is_none( ) ) ;
278
275
}
279
276
280
277
{
281
- let buf_slice = ( & BUF ) . into_buffer_slice ( 123213 ..9999999999 ) ;
282
- let ( ptr, size_local) = api_read ( buf_slice) ;
283
- assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
284
- assert_eq ! ( size_local, 0 ) ;
278
+ let buf_slice = ( & BUF ) . into_read_buffer_slice ( 123213 ..9999999999 ) ;
279
+ assert ! ( buf_slice. is_none( ) ) ;
285
280
}
286
281
287
282
{
288
283
#[ allow( clippy:: reversed_empty_ranges) ]
289
- let buf_slice = ( & BUF ) . into_buffer_slice ( 123 ..2 ) ;
290
- let ( ptr, size_local) = api_read ( buf_slice) ;
291
- assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
292
- assert_eq ! ( size_local, 0 ) ;
284
+ let buf_slice = ( & BUF ) . into_read_buffer_slice ( 123 ..2 ) ;
285
+ assert ! ( buf_slice. is_none( ) ) ;
293
286
}
294
287
}
295
288
296
289
#[ test]
297
290
fn write_api_slice ( ) {
291
+ pub use slice:: WriteBufferExt ;
292
+
298
293
const SIZE : usize = 128 ;
299
294
static mut BUF : [ u8 ; SIZE ] = [ 0u8 ; SIZE ] ;
300
295
{
301
- let buf_slice = ( unsafe { & mut BUF } ) . into_buffer_slice ( ..123 ) ;
296
+ let buf_slice = ( unsafe { & mut BUF } )
297
+ . into_write_buffer_slice ( ..123 )
298
+ . unwrap ( ) ;
302
299
let ( ptr, size_local) = api_write ( buf_slice) ;
303
300
assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
304
301
assert_eq ! ( size_local, 123 ) ;
305
302
}
306
303
307
304
{
308
- let buf_slice = ( unsafe { & mut BUF } ) . into_buffer_slice ( 5 ..123 ) ;
305
+ let buf_slice = ( unsafe { & mut BUF } )
306
+ . into_write_buffer_slice ( 5 ..123 )
307
+ . unwrap ( ) ;
309
308
let ( ptr, size_local) = api_write ( buf_slice) ;
310
309
assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
311
310
assert_eq ! ( size_local, 123 - 5 ) ;
312
311
}
313
312
314
313
{
315
- let buf_slice = ( unsafe { & mut BUF } ) . into_buffer_slice ( 5 ..) ;
314
+ let buf_slice = ( unsafe { & mut BUF } ) . into_write_buffer_slice ( 5 ..) . unwrap ( ) ;
316
315
let ( ptr, size_local) = api_write ( buf_slice) ;
317
316
assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
318
317
assert_eq ! ( size_local, SIZE - 5 ) ;
319
318
}
320
319
321
320
{
322
- let buf_slice = ( unsafe { & mut BUF } ) . into_buffer_slice ( ..) ;
321
+ let buf_slice = ( unsafe { & mut BUF } ) . into_write_buffer_slice ( ..) . unwrap ( ) ;
323
322
let ( ptr, size_local) = api_write ( buf_slice) ;
324
323
assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
325
324
assert_eq ! ( size_local, SIZE ) ;
326
325
}
327
326
328
327
{
329
- let buf_slice = ( unsafe { & mut BUF } ) . into_buffer_slice ( 0 ..SIZE ) ;
328
+ let buf_slice = ( unsafe { & mut BUF } )
329
+ . into_write_buffer_slice ( 0 ..SIZE )
330
+ . unwrap ( ) ;
330
331
let ( ptr, size_local) = api_write ( buf_slice) ;
331
332
assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
332
333
assert_eq ! ( size_local, SIZE ) ;
333
334
}
334
335
335
336
{
336
- let buf_slice = ( unsafe { & mut BUF } ) . into_buffer_slice ( 0 ..9999999999 ) ;
337
- let ( ptr, size_local) = api_write ( buf_slice) ;
338
- assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
339
- assert_eq ! ( size_local, SIZE ) ;
337
+ let buf_slice = ( unsafe { & mut BUF } ) . into_write_buffer_slice ( 0 ..9999999999 ) ;
338
+ assert ! ( buf_slice. is_none( ) ) ;
340
339
}
341
340
342
341
{
343
- let buf_slice = ( unsafe { & mut BUF } ) . into_buffer_slice ( 123213 ..9999999999 ) ;
344
- let ( ptr, size_local) = api_write ( buf_slice) ;
345
- assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
346
- assert_eq ! ( size_local, 0 ) ;
342
+ let buf_slice = ( unsafe { & mut BUF } ) . into_write_buffer_slice ( 123213 ..9999999999 ) ;
343
+ assert ! ( buf_slice. is_none( ) ) ;
347
344
}
348
345
349
346
{
350
347
#[ allow( clippy:: reversed_empty_ranges) ]
351
- let buf_slice = ( unsafe { & mut BUF } ) . into_buffer_slice ( 123 ..2 ) ;
352
- let ( ptr, size_local) = api_write ( buf_slice) ;
353
- assert ! ( unsafe { ( & * ptr as & dyn Any ) . is:: <u8 >( ) } ) ;
354
- assert_eq ! ( size_local, 0 ) ;
348
+ let buf_slice = ( unsafe { & mut BUF } ) . into_write_buffer_slice ( 123 ..2 ) ;
349
+ assert ! ( buf_slice. is_none( ) )
355
350
}
356
351
}
357
352
0 commit comments