hdbconnect_impl/protocol/
util_sync.rs

1use crate::{HdbResult, impl_err};
2
3// Read n bytes, return as Vec<u8>
4pub(crate) fn parse_bytes(len: usize, rdr: &mut dyn std::io::Read) -> HdbResult<Vec<u8>> {
5    let mut buf: Vec<u8> = vec![0; len];
6    rdr.read_exact(&mut buf)?;
7    Ok(buf)
8}
9
10pub(crate) fn skip_bytes(n: usize, rdr: &mut dyn std::io::Read) -> HdbResult<()> {
11    const MAXBUFLEN: usize = 16;
12    if n > MAXBUFLEN {
13        Err(impl_err!("n > MAXBUFLEN (16)"))
14    } else {
15        let mut buffer = [0_u8; MAXBUFLEN];
16        Ok(rdr.read_exact(&mut buffer[0..n])?)
17    }
18}