rustlite_core/storage.rs
1//! Storage engine module.
2//!
3//! This module will contain the persistent storage layer implementation.
4//! Future versions will include:
5//! - Log-structured merge tree (LSM)
6//! - B-Tree storage
7//! - Memory-mapped file I/O
8//! - Compression support
9
10/// Storage engine trait (placeholder for v0.2+)
11pub trait StorageEngine {
12 /// Insert or update a key-value pair
13 fn put(&mut self, key: &[u8], value: &[u8]) -> crate::Result<()>;
14
15 /// Retrieve a value by key
16 fn get(&self, key: &[u8]) -> crate::Result<Option<Vec<u8>>>;
17
18 /// Delete a key-value pair
19 fn delete(&mut self, key: &[u8]) -> crate::Result<bool>;
20
21 /// Flush pending writes to disk
22 fn flush(&mut self) -> crate::Result<()>;
23}
24
25// Placeholder for future LSM-tree implementation
26/// LSM-tree storage (placeholder)
27///
28/// A log-structured merge-tree (LSM) based storage engine planned for v0.2.
29/// This will provide high-throughput writes and batched compactions for
30/// efficient disk usage.
31#[allow(dead_code)]
32pub struct LsmTree {
33 // Implementation details will be added in v0.2
34}
35
36// Placeholder for future B-Tree implementation
37/// B-Tree storage (placeholder)
38///
39/// A B-Tree based storage backend planned for v0.3. B-Tree storage is useful
40/// for ordered access patterns and efficient range queries.
41#[allow(dead_code)]
42pub struct BTreeStorage {
43 // Implementation details will be added in v0.3
44}