fn decode()

in src/codec/thrift_cache.rs [570:592]


    fn decode(&self, buffer: &mut Session) -> Result<(), ParseError> {
        // no-copy borrow as a slice
        let buf: &[u8] = (*buffer).buffer();

        let bytes = buf.len() as u32;
        if bytes > 4 {
            let length = u32::from_be_bytes([buf[0], buf[1], buf[2], buf[3]]);

            match length.checked_add(4_u32) {
                Some(b) => {
                    if b == bytes {
                        buffer.consume(b as usize);
                        Ok(())
                    } else {
                        Err(ParseError::Incomplete)
                    }
                }
                None => Err(ParseError::Unknown),
            }
        } else {
            Err(ParseError::Incomplete)
        }
    }