1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
/// A trait for erroring deserialization if not all bytes were read. pub trait TrailingBytes { // /// Checks a given slice reader to determine if deserialization used all bytes in the slice. // fn check_end(reader: &SliceReader) -> Result<()>; } /// A TrailingBytes config that will allow trailing bytes in slices after deserialization. #[derive(Copy, Clone)] pub struct AllowTrailing; /// A TrailingBytes config that will cause bincode to produce an error if bytes are left over in the slice when deserialization is complete. #[derive(Copy, Clone)] pub struct RejectTrailing; impl TrailingBytes for AllowTrailing { // #[inline(always)] // fn check_end(_reader: &SliceReader) -> Result<()> { // Ok(()) // } } impl TrailingBytes for RejectTrailing { // #[inline(always)] // fn check_end(reader: &SliceReader) -> Result<()> { // if reader.is_finished() { // Ok(()) // } else { // Err(box_new(ErrorKind::Custom( // "Slice had bytes remaining after deserialization".into(), // ))) // } // } }