#![deny(unsafe_code)]
#![warn(clippy::all, clippy::pedantic)]
#![allow(
clippy::module_name_repetitions,
clippy::missing_errors_doc,
clippy::missing_panics_doc
)]
pub(crate) mod btree;
pub(crate) mod catalog;
pub(crate) mod compaction;
pub(crate) mod crypto;
pub(crate) mod diag;
pub(crate) mod errors;
#[doc(hidden)]
pub mod hex;
pub(crate) mod observability;
pub mod options;
pub(crate) mod pager;
pub(crate) mod realm;
pub(crate) mod recovery;
pub(crate) mod segment;
pub(crate) mod snapshot;
pub(crate) mod txn;
pub mod vfs;
pub use catalog::codec::{RealmQuotas, SegmentKind, SegmentMeta};
pub use compaction::{CompactBudget, CompactProgress, CompactStats};
pub use crypto::{CipherId, SecretKey};
pub use errors::{CorruptionDetail, Evictable, PagedbError, QuotaKind};
pub use observability::DbStats;
pub use options::{OpenOptions, RetainPolicy};
pub use recovery::{DeepWalkReport, DriftIssue, PageIssue, SegmentIssue, run_deep_walk};
pub use segment::{
ExtentRef, GcStats, MmapView, PageId, SegmentPageKind, SegmentReader, SegmentWriter,
};
pub use snapshot::{ApplyStats, SnapshotStats};
pub use txn::{
CounterRef, Db, DbMode, ReadTxn, ReaderStallPolicy, ScratchOffset, SpillScope, WriteTxn,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct RealmId(pub(crate) [u8; 16]);
impl RealmId {
#[must_use]
pub const fn new(bytes: [u8; 16]) -> Self {
Self(bytes)
}
#[must_use]
pub const fn as_bytes(&self) -> &[u8; 16] {
&self.0
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CommitId(pub(crate) u64);
impl CommitId {
#[must_use]
pub const fn new(v: u64) -> Self {
Self(v)
}
#[must_use]
pub const fn value(self) -> u64 {
self.0
}
}
pub type Result<T> = core::result::Result<T, PagedbError>;