Struct pi_bon::ReadBuffer
source · pub struct ReadBuffer<'a> {
pub bytes: &'a [u8],
pub head: usize,
}Expand description
ReadBuffer,用于将二进制反序列化为对应数据
Fields§
§bytes: &'a [u8]§head: usizeImplementations§
source§impl<'a> ReadBuffer<'a>
impl<'a> ReadBuffer<'a>
sourcepub fn new(buf: &[u8], head: usize) -> ReadBuffer<'_>
pub fn new(buf: &[u8], head: usize) -> ReadBuffer<'_>
创建ReadBuffer, buf必须符合bon协议, 否则当调用其partial_cmp会直接panic head指定反序列化开始的位置
sourcepub fn get_type(&mut self) -> Result<u8, ReadBonErr>
pub fn get_type(&mut self) -> Result<u8, ReadBonErr>
获取接下来要反序列化的数据的类型
sourcepub fn get_type_chunk(&mut self) -> Result<u8, ReadBonErr>
pub fn get_type_chunk(&mut self) -> Result<u8, ReadBonErr>
获取接下来要反序列化的数据的类型(不改变bytes偏移)
sourcepub fn read_bool(&mut self) -> Result<bool, ReadBonErr>
pub fn read_bool(&mut self) -> Result<bool, ReadBonErr>
读一个布尔类型,如果二进制当前的值不是布尔类型,返回Err
sourcepub fn read_u8(&mut self) -> Result<u8, ReadBonErr>
pub fn read_u8(&mut self) -> Result<u8, ReadBonErr>
读一个u8类型,如果二进制当前的值不是u8类型,返回Err
sourcepub fn read_u16(&mut self) -> Result<u16, ReadBonErr>
pub fn read_u16(&mut self) -> Result<u16, ReadBonErr>
读一个u16类型,如果二进制当前的值不是u16类型,返回Err
sourcepub fn read_u32(&mut self) -> Result<u32, ReadBonErr>
pub fn read_u32(&mut self) -> Result<u32, ReadBonErr>
读一个u32类型,如果二进制当前的值不是u32类型,返回Err
sourcepub fn read_u64(&mut self) -> Result<u64, ReadBonErr>
pub fn read_u64(&mut self) -> Result<u64, ReadBonErr>
读一个u64类型,如果二进制当前的值不是u64类型,返回Err
sourcepub fn read_usize(&mut self) -> Result<usize, ReadBonErr>
pub fn read_usize(&mut self) -> Result<usize, ReadBonErr>
读一个usize类型,如果二进制当前的值不是usize类型,返回Err
sourcepub fn read_u128(&mut self) -> Result<u128, ReadBonErr>
pub fn read_u128(&mut self) -> Result<u128, ReadBonErr>
读一个u128类型,如果二进制当前的值不是u128类型,返回Err
sourcepub fn read_i8(&mut self) -> Result<i8, ReadBonErr>
pub fn read_i8(&mut self) -> Result<i8, ReadBonErr>
读一个i8类型,如果二进制当前的值不是i8类型,返回Err
sourcepub fn read_i16(&mut self) -> Result<i16, ReadBonErr>
pub fn read_i16(&mut self) -> Result<i16, ReadBonErr>
读一个i16类型,如果二进制当前的值不是i16类型,返回Err
sourcepub fn read_i32(&mut self) -> Result<i32, ReadBonErr>
pub fn read_i32(&mut self) -> Result<i32, ReadBonErr>
读一个ui32类型,如果二进制当前的值不是i32类型,返回Err
sourcepub fn read_i64(&mut self) -> Result<i64, ReadBonErr>
pub fn read_i64(&mut self) -> Result<i64, ReadBonErr>
读一个i61类型,如果二进制当前的值不是i64类型,返回Err
sourcepub fn read_isize(&mut self) -> Result<isize, ReadBonErr>
pub fn read_isize(&mut self) -> Result<isize, ReadBonErr>
读一个isize类型,如果二进制当前的值不是isize类型,返回Err
sourcepub fn read_i128(&mut self) -> Result<i128, ReadBonErr>
pub fn read_i128(&mut self) -> Result<i128, ReadBonErr>
读一个i128类型,如果二进制当前的值不是i128类型,返回Err
sourcepub fn read_f32(&mut self) -> Result<f32, ReadBonErr>
pub fn read_f32(&mut self) -> Result<f32, ReadBonErr>
读一个f32类型,如果二进制当前的值不是f32类型,返回Err
sourcepub fn read_f64(&mut self) -> Result<f64, ReadBonErr>
pub fn read_f64(&mut self) -> Result<f64, ReadBonErr>
读一个f64类型,如果二进制当前的值不是f64类型,返回Err
sourcepub fn read_lengthen(&mut self) -> Result<u32, ReadBonErr>
pub fn read_lengthen(&mut self) -> Result<u32, ReadBonErr>
读出一个动态长度,正整数,不允许大于0x20000000
pub fn read_bin(&mut self) -> Result<Vec<u8>, ReadBonErr>
sourcepub fn read_utf8(&mut self) -> Result<String, ReadBonErr>
pub fn read_utf8(&mut self) -> Result<String, ReadBonErr>
读一个utf8编码的字符串类型,如果二进制当前的值不是utf8编码的字符串类型类型,返回Err
sourcepub fn read_container<T, F>(&mut self, read_next: F) -> Result<T, ReadBonErr>
pub fn read_container<T, F>(&mut self, read_next: F) -> Result<T, ReadBonErr>
读一个容器类型,如果二进制当前的值不是容器类型,返回Err
sourcepub fn is_nil(&mut self) -> Result<bool, ReadBonErr>
pub fn is_nil(&mut self) -> Result<bool, ReadBonErr>
下一个值是否为None
sourcepub fn read(&mut self) -> Result<EnumValue, ReadBonErr>
pub fn read(&mut self) -> Result<EnumValue, ReadBonErr>
读下一个数据,已经读到最后,返回Err。否则,返回下一个数据
Trait Implementations§
source§impl<'a> Clone for ReadBuffer<'a>
impl<'a> Clone for ReadBuffer<'a>
source§fn clone(&self) -> ReadBuffer<'a>
fn clone(&self) -> ReadBuffer<'a>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl<'a> Debug for ReadBuffer<'a>
impl<'a> Debug for ReadBuffer<'a>
source§impl<'a> Default for ReadBuffer<'a>
impl<'a> Default for ReadBuffer<'a>
source§fn default() -> ReadBuffer<'a>
fn default() -> ReadBuffer<'a>
source§impl<'a> Ord for ReadBuffer<'a>
impl<'a> Ord for ReadBuffer<'a>
source§fn cmp(&self, other: &ReadBuffer<'a>) -> Ordering
fn cmp(&self, other: &ReadBuffer<'a>) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl<'a> PartialEq for ReadBuffer<'a>
impl<'a> PartialEq for ReadBuffer<'a>
source§fn eq(&self, other: &ReadBuffer<'a>) -> bool
fn eq(&self, other: &ReadBuffer<'a>) -> bool
self and other values to be equal, and is used
by ==.source§impl<'a> PartialOrd for ReadBuffer<'a>
impl<'a> PartialOrd for ReadBuffer<'a>
source§fn partial_cmp(&self, other: &ReadBuffer<'a>) -> Option<Ordering>
fn partial_cmp(&self, other: &ReadBuffer<'a>) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read more