limbo/core/storage/mod.rs
pedrocarlo 6f67b05885 add JournalMode to parse the requested journal mode and handle changes in modes
when updating `journal_mode` open a Write Transaction to flush pages to
database file
2025-12-17 10:49:25 -03:00

35 lines
1.2 KiB
Rust

//! The storage layer.
//!
//! This module contains the storage layer for Limbo. The storage layer is
//! responsible for managing access to the database and its pages. The main
//! interface to the storage layer is the `Pager` struct, which is
//! responsible for managing the database file and the pages it contains.
//!
//! Pages in a database are stored in one of the following to data structures:
//! `DatabaseStorage` or `Wal`. The `DatabaseStorage` trait is responsible
//! for reading and writing pages to the database file, either local or
//! remote. The `Wal` struct is responsible for managing the write-ahead log
//! for the database, also either local or remote.
pub(crate) mod btree;
pub(crate) mod buffer_pool;
pub(crate) mod checksum;
pub mod database;
pub(crate) mod encryption;
pub(crate) mod journal_mode;
pub(crate) mod page_cache;
#[allow(clippy::arc_with_non_send_sync)]
pub(crate) mod pager;
#[allow(dead_code)]
pub(super) mod slot_bitmap;
pub mod sqlite3_ondisk;
mod state_machines;
pub(crate) mod subjournal;
#[allow(clippy::arc_with_non_send_sync)]
pub(crate) mod wal;
#[macro_export]
macro_rules! return_corrupt {
($msg:expr) => {
return Err(LimboError::Corrupt($msg.into()));
};
}