pub struct FileStorage { /* private fields */ }Implementations§
Source§impl FileStorage
impl FileStorage
pub fn new(base_path: impl AsRef<Path>) -> FileStorage
Trait Implementations§
Source§impl AgentStorage for FileStorage
impl AgentStorage for FileStorage
Source§fn save<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
snapshot: &'life2 AgentSnapshot,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
FileStorage: 'async_trait,
fn save<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
snapshot: &'life2 AgentSnapshot,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
FileStorage: 'async_trait,
Persist an agent snapshot for the given session ID.
Source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<AgentSnapshot>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
FileStorage: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<AgentSnapshot>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
FileStorage: 'async_trait,
Load a snapshot. Returns
None if the session does not exist.Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
FileStorage: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
FileStorage: 'async_trait,
Remove a session’s persisted data.
Source§fn list_sessions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
FileStorage: 'async_trait,
fn list_sessions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
FileStorage: 'async_trait,
List all stored session IDs.
Source§fn supports(&self, capability: StorageCapability) -> bool
fn supports(&self, capability: StorageCapability) -> bool
Return whether this backend implements a storage feature.
Source§fn save_snapshot_with_metadata<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
snapshot: &'life2 AgentSnapshot,
metadata: &'life3 SessionMetadata,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
fn save_snapshot_with_metadata<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
snapshot: &'life2 AgentSnapshot,
metadata: &'life3 SessionMetadata,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
Atomically persist a snapshot and its metadata when the backend supports session metadata.
Source§fn save_metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
_metadata: &'life2 SessionMetadata,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn save_metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
_metadata: &'life2 SessionMetadata,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Save session metadata alongside the snapshot.
Source§fn load_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SessionMetadata>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn load_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
_session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SessionMetadata>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Load session metadata.
Source§fn list_sessions_filtered<'life0, 'life1, 'async_trait>(
&'life0 self,
_filter: &'life1 SessionFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<SessionSummary>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn list_sessions_filtered<'life0, 'life1, 'async_trait>(
&'life0 self,
_filter: &'life1 SessionFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<SessionSummary>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
List sessions matching a filter.
Source§fn cleanup_expired<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<usize, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn cleanup_expired<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<usize, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Delete sessions that have expired based on TTL.
Source§fn save_facts<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
_facts: &'life3 [KeyFact],
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
fn save_facts<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
_facts: &'life3 [KeyFact],
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
Persist facts for an actor. Merges with existing facts.
Source§fn load_facts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<KeyFact>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn load_facts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<KeyFact>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Load all facts for a specific actor.
Source§fn query_facts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_filter: &'life2 FactFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<KeyFact>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn query_facts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_filter: &'life2 FactFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<KeyFact>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Load facts matching a filter (cross-actor queries).
Source§fn delete_fact<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
_fact_id: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
fn delete_fact<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
_fact_id: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
Delete a single fact by ID.
Source§fn delete_actor_data<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn delete_actor_data<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Atomically delete facts, relationships, and sessions owned by an actor.
Source§fn save_relationship<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
_relationship: &'life3 Value,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
fn save_relationship<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
_relationship: &'life3 Value,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
Persist relationship data for an actor. Value is owned by the relationships crate.
Source§fn load_relationship<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Value>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn load_relationship<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Value>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Load relationship data for a specific actor.
Source§fn list_relationship_actors<'life0, 'life1, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn list_relationship_actors<'life0, 'life1, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
List actor IDs that have relationship data for an agent.
Source§fn delete_relationship<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn delete_relationship<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_agent_id: &'life1 str,
_actor_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Delete relationship data for a specific actor.
Auto Trait Implementations§
impl Freeze for FileStorage
impl RefUnwindSafe for FileStorage
impl Send for FileStorage
impl Sync for FileStorage
impl Unpin for FileStorage
impl UnsafeUnpin for FileStorage
impl UnwindSafe for FileStorage
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more