pub struct FileMemoryStore { /* private fields */ }Expand description
File-backed memory store with per-level validators.
Directory layout:
base_dir/L0/...
base_dir/L1/...
...Paths passed to read/write/patch/delete are relative to a level directory.
The format is <level_prefix>/<name>, e.g. "L1/key_info.md". The level
prefix is automatically stripped to resolve the filesystem path.
Implementations§
Source§impl FileMemoryStore
impl FileMemoryStore
Sourcepub fn new(base_dir: impl Into<PathBuf>) -> Self
pub fn new(base_dir: impl Into<PathBuf>) -> Self
Create a new file-backed store rooted at base_dir.
Level subdirectories are created lazily on first write.
Sourcepub fn with_validator(
self,
level: MemoryLevel,
validator: Box<dyn MemoryValidator>,
) -> Self
pub fn with_validator( self, level: MemoryLevel, validator: Box<dyn MemoryValidator>, ) -> Self
Attach a validator for a specific memory level.
Trait Implementations§
Source§impl MemoryStore for FileMemoryStore
impl MemoryStore for FileMemoryStore
Source§fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String, MemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String, MemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Read a file from the given path within the memory store.
Source§fn write<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 str,
content: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), MemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn write<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 str,
content: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), MemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Write content to the given path within the memory store.
Source§fn patch<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 str,
old: &'life2 str,
new: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), MemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn patch<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 str,
old: &'life2 str,
new: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), MemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Patch a file by replacing
old with new.Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), MemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), MemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete a file from the memory store.
Source§fn list<'life0, 'async_trait>(
&'life0 self,
level: MemoryLevel,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, MemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list<'life0, 'async_trait>(
&'life0 self,
level: MemoryLevel,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, MemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List all files at the given memory level.
Source§fn validate(&self, level: MemoryLevel, content: &str) -> Result<(), MemoryError>
fn validate(&self, level: MemoryLevel, content: &str) -> Result<(), MemoryError>
Validate content for the given memory level.
Auto Trait Implementations§
impl !RefUnwindSafe for FileMemoryStore
impl !UnwindSafe for FileMemoryStore
impl Freeze for FileMemoryStore
impl Send for FileMemoryStore
impl Sync for FileMemoryStore
impl Unpin for FileMemoryStore
impl UnsafeUnpin for FileMemoryStore
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