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 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,
Delete all facts and session data for an actor (privacy/GDPR compliance).
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 moreCreates a shared type from an unshared type.