pi_append_log 0.3.0

Storage-agnostic append-only block log traits, codec, layout, and file backend
//! 与具体存储介质无关的追加日志抽象。
//!
//! 当前 crate 定义追加日志 trait、格式和文件后端。
//!
//! 本库只发出 `tracing` 事件,不初始化全局 subscriber。最终应用可通过本 crate
//! 重导出的 [`observability`] 模块初始化 `pi_logger` 日志 subscriber。

#![forbid(unsafe_code)]
#![warn(missing_docs)]
#![allow(async_fn_in_trait)]

pub mod format;

pub mod file;

pub mod storage;

/// 应用侧日志 subscriber 初始化及配置接口。
///
/// 本 crate 不会自动调用这些接口或修改全局 subscriber。
pub use pi_logger::observability;

pub use format::{
    BlockDecoder, BlockEncoder, DEFAULT_BODY_FIXED_LEN, DEFAULT_ENCODED_FIXED_LEN, DEFAULT_MAGIC,
    DEFAULT_MAGIC_BYTES, DEFAULT_MAX_PAYLOAD_LEN, DEFAULT_VERSION, DecodedBlock, DefaultBlockCodec,
};

pub use storage::{
    AppendLog, AppendLogBuilder, AppendLogVisitor, AppendOptions, BlockVisitContext, BuildResult,
    Layout, ReadOrder,
};