pub trait AvroFormat: Debug + Default {
const NEEDS_PREFIX: bool;
// Required methods
fn start_stream<W: Write>(
&mut self,
writer: &mut W,
schema: &Schema,
compression: Option<CompressionCodec>,
) -> Result<(), ArrowError>;
fn sync_marker(&self) -> Option<&[u8; 16]>;
}展开描述
由每个容器级写入器实现的格式抽象。
所需关联常量§
源代码const NEEDS_PREFIX: bool
const NEEDS_PREFIX: bool
如果为 true,此格式的写入器将查询 single_object_prefix() 并在每个记录之前写入前缀。如果为 false,写入器可以跳过此步骤。这是对写入器的性能提示。
必需方法§
源代码fn start_stream<W: Write>( &mut self, writer: &mut W, schema: &Schema, compression: Option<CompressionCodec>, ) -> Result<(), ArrowError>
fn start_stream<W: Write>( &mut self, writer: &mut W, schema: &Schema, compression: Option<CompressionCodec>, ) -> Result<(), ArrowError>
在输出流的最开始(文件头等)写入任何必需的字节。实现 不得 写入任何记录数据。
源代码fn sync_marker(&self) -> Option<&[u8; 16]>
fn sync_marker(&self) -> Option<&[u8; 16]>
返回 16 字节同步标记 (OCF) 或 None (二进制流)。
动态兼容性§
此 trait 不 dyn 兼容。
在旧版本的 Rust 中,动态兼容性被称为“对象安全”,所以此 trait 不是对象安全的。