tycho 0.1.2

A minimal, self-describing and traversable binary data format designed around rust and the serde data model.
Documentation
use tokio::io::AsyncRead;

use crate::error::TychoResult;
use crate::read::async_::func::read_byte_async;

pub(crate) async fn read_length_async<R: AsyncRead + Unpin>(reader: &mut R) -> TychoResult<usize> {
    let mut number: u64 = 0;
    let mut count = 0_i32;

    loop {
        let byte = read_byte_async(reader).await?;

        number |= ((byte & 0x7F) as u64) << (7 * count);

        if byte & 0x80 == 0 {
            return Ok(number as usize);
        }

        count += 1;
    }
}