pub struct Wal { /* private fields */ }Expand description
append-only 日志句柄。打开即追加,绝不截断;打开即持单写者锁, 打开即验完整历史(完整性链断裂 → 拒开,带病审计绝不续写)。
Implementations§
Source§impl Wal
impl Wal
Sourcepub fn open(path: impl AsRef<Path>) -> Result<Self, CoreError>
pub fn open(path: impl AsRef<Path>) -> Result<Self, CoreError>
打开(不存在则创建)用于追加。禁 truncate:已有内容一律保留。
先自动创建父目录(W-43a 默认路径 ~/.wanning/wal.jsonl 的「零配置」体验;
显式路径同样受益),再拿单写者锁(fail-closed:第二个写进程拒启),再
整体验一遍已有历史(read_verified:逐行可解析 + 完整性链——历史被
改/删/排,拒开不续写),再以追加模式打开。锁定之后验历史,才不会和另一个
进程的追加赛跑。
pub fn path(&self) -> &Path
Sourcepub fn line_count(&self) -> u64
pub fn line_count(&self) -> u64
已写入行数(含历史行,1-based 下一条即 line_count() + 1)。
Sourcepub fn chain_tail(&self) -> u64
pub fn chain_tail(&self) -> u64
完整性链尾值(最后一条记录的链值;空日志为创世值 0)。
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Wal
impl RefUnwindSafe for Wal
impl Send for Wal
impl Sync for Wal
impl Unpin for Wal
impl UnsafeUnpin for Wal
impl UnwindSafe for Wal
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more