HeaderDecoder

结构体 HeaderDecoder 

源代码
pub struct HeaderDecoder {
    state: HeaderDecoderState,
    vlq_decoder: VLQDecoder,
    meta_offsets: Vec<usize>,
    meta_buf: Vec<u8>,
    sync_marker: [u8; 16],
    tuples_remaining: usize,
    bytes_remaining: usize,
}
展开描述

Header 的解码器

Avro 文件格式不编码头部长度,因此需要提供一个基于推的解码器,以便与流一起使用

字段§

§state: HeaderDecoderState§vlq_decoder: VLQDecoder§meta_offsets: Vec<usize>

meta_buf 中字符串的结束偏移量

§meta_buf: Vec<u8>

元数据映射的原始二进制数据

§sync_marker: [u8; 16]

已解码的同步标记

§tuples_remaining: usize

当前块中剩余的元组数量

§bytes_remaining: usize

当前字符串/字节负载中剩余的字节数

实现§

源代码§

impl HeaderDecoder

源代码

pub fn decode(&mut self, buf: &[u8]) -> Result<usize, ArrowError>

buf 解析 Header,返回读取的字节数

此方法可以与连续的数据块多次调用,从而实现与分块 IO 系统(如 BufRead::fill_buf)的集成

所有错误都应被视为致命错误,并中止解码

一旦整个 Header 已解码,此方法将不再读取任何进一步的输入字节,并且可以通过 Self::flush 获取头部

源代码

pub fn flush(&mut self) -> Option<Header>

刷新此解码器,返回已解析的 Header(如果有)

Trait 实现§

源代码§

impl Debug for HeaderDecoder

源代码§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

使用给定的格式化程序格式化值。 阅读更多
源代码§

impl Default for HeaderDecoder

源代码§

fn default() -> Self

返回某个类型的“默认值”。阅读更多

自动 Trait 实现§

通用实现§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

获取 selfTypeId阅读更多
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

从拥有的值进行不可变借用。 阅读更多
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

从拥有的值进行可变借用。 阅读更多
§

impl<T> From<T> for T

§

fn from(t: T) -> T

返回未更改的参数。

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

调用 U::from(self)

也就是说,此转换是 From<T> for U 的实现选择执行的任何操作。

§

impl<T> Same for T

§

type Output = T

应该总是 Self
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

转换错误时返回的类型。
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

执行转换。
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

转换错误时返回的类型。
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

执行转换。
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,