@@ -309,92 +309,6 @@ impl<const N: usize> Measurer for U8ArrayRefCodec<N> {
309309 }
310310}
311311
312- /// A codec for fixed-size slices of `u8`.
313- ///
314- /// # Examples
315- /// ```rust
316- /// use byten::{FixedU8SliceCodec, Decoder, Encoder, FixedMeasurer, Measurer, DecodeError, EncodeError};
317- ///
318- /// let slice: &[u8] = &[1, 2, 3, 4];
319- /// let codec = FixedU8SliceCodec::new(4);
320- ///
321- /// let mut encoded = [0u8; 4];
322- /// let mut offset = 0;
323- ///
324- /// codec.encode(slice, &mut encoded, &mut offset).unwrap();
325- /// assert_eq!(offset, 4);
326- ///
327- /// let mut decode_offset = 0;
328- /// let decoded: &[u8] = codec.decode(&encoded, &mut decode_offset).unwrap();
329- /// assert_eq!(decoded, slice);
330- /// assert_eq!(decode_offset, 4);
331- ///
332- /// let size = codec.measure(slice).unwrap();
333- /// assert_eq!(size, 4);
334- ///
335- /// let fixed_size = codec.measure_fixed();
336- /// assert_eq!(fixed_size, 4);
337- /// ```
338- pub struct FixedU8SliceCodec ( usize ) ;
339-
340- impl FixedU8SliceCodec {
341- pub const fn new ( length : usize ) -> FixedU8SliceCodec {
342- FixedU8SliceCodec ( length)
343- }
344- }
345-
346- impl < ' encoded : ' decoded , ' decoded > Decoder < ' encoded , ' decoded > for FixedU8SliceCodec {
347- type Decoded = & ' decoded [ u8 ] ;
348- fn decode (
349- & self ,
350- encoded : & ' encoded [ u8 ] ,
351- offset : & mut usize ,
352- ) -> Result < Self :: Decoded , error:: DecodeError > {
353- if * offset + self . 0 > encoded. len ( ) {
354- return Err ( error:: DecodeError :: EOF ) ;
355- }
356- let slice = & encoded[ * offset..* offset + self . 0 ] ;
357- * offset += self . 0 ;
358- Ok ( slice)
359- }
360- }
361-
362- impl Encoder for FixedU8SliceCodec {
363- type Decoded = [ u8 ] ;
364- fn encode (
365- & self ,
366- decoded : & Self :: Decoded ,
367- encoded : & mut [ u8 ] ,
368- offset : & mut usize ,
369- ) -> Result < ( ) , error:: EncodeError > {
370- if decoded. len ( ) != self . 0 {
371- return Err ( error:: EncodeError :: InvalidData ) ;
372- }
373- if * offset + self . 0 > encoded. len ( ) {
374- return Err ( error:: EncodeError :: BufferTooSmall ) ;
375- }
376- encoded[ * offset..* offset + self . 0 ] . copy_from_slice ( decoded) ;
377- * offset += self . 0 ;
378- Ok ( ( ) )
379- }
380- }
381-
382- impl FixedMeasurer for FixedU8SliceCodec {
383- fn measure_fixed ( & self ) -> usize {
384- self . 0
385- }
386- }
387-
388- impl Measurer for FixedU8SliceCodec {
389- type Decoded = [ u8 ] ;
390- fn measure ( & self , decoded : & Self :: Decoded ) -> Result < usize , error:: EncodeError > {
391- if decoded. len ( ) != self . 0 {
392- return Err ( error:: EncodeError :: InvalidData ) ;
393- }
394- Ok ( self . measure_fixed ( ) )
395- }
396- }
397-
398312/// A codec for the `bool` type.
399313///
400314/// # Examples
0 commit comments