pub struct SessionStore { /* private fields */ }Expand description
Enhanced session storage backend
Implementations§
Source§impl SessionStore
impl SessionStore
Sourcepub async fn new(config: SessionStoreConfig) -> Result<Self>
pub async fn new(config: SessionStoreConfig) -> Result<Self>
Create new session store
Sourcepub async fn save_session(
&self,
id: Uuid,
metadata: &SessionMetadata,
conversation: &ConversationSnapshot,
state: &SessionState,
) -> Result<()>
pub async fn save_session( &self, id: Uuid, metadata: &SessionMetadata, conversation: &ConversationSnapshot, state: &SessionState, ) -> Result<()>
Save session to storage
Sourcepub async fn load_session(
&self,
id: Uuid,
) -> Result<(SessionMetadata, ConversationSnapshot, SessionState)>
pub async fn load_session( &self, id: Uuid, ) -> Result<(SessionMetadata, ConversationSnapshot, SessionState)>
Load session from storage
Sourcepub async fn delete_session(&self, id: Uuid) -> Result<()>
pub async fn delete_session(&self, id: Uuid) -> Result<()>
Delete session from storage
Sourcepub async fn list_sessions(&self) -> Result<Vec<SessionMetadata>>
pub async fn list_sessions(&self) -> Result<Vec<SessionMetadata>>
List all sessions with metadata
Sourcepub async fn search_sessions(&self, query: &str) -> Result<Vec<SessionMetadata>>
pub async fn search_sessions(&self, query: &str) -> Result<Vec<SessionMetadata>>
Search sessions by query
Sourcepub async fn mark_dirty(&self, id: Uuid)
pub async fn mark_dirty(&self, id: Uuid)
Mark session as dirty (needs saving)
Sourcepub async fn get_dirty_sessions(&self) -> Vec<Uuid>
pub async fn get_dirty_sessions(&self) -> Vec<Uuid>
Get dirty sessions that need saving
Sourcepub async fn save_dirty_sessions(&self) -> Result<()>
pub async fn save_dirty_sessions(&self) -> Result<()>
Save all dirty sessions
Sourcepub async fn save_index(&self) -> Result<()>
pub async fn save_index(&self) -> Result<()>
Save session index
Sourcepub async fn create_checkpoint(
&self,
session_id: Uuid,
checkpoint_id: Uuid,
conversation: &ConversationSnapshot,
state: &SessionState,
) -> Result<()>
pub async fn create_checkpoint( &self, session_id: Uuid, checkpoint_id: Uuid, conversation: &ConversationSnapshot, state: &SessionState, ) -> Result<()>
Create checkpoint for a session
Sourcepub async fn load_checkpoint(
&self,
session_id: Uuid,
checkpoint_id: Uuid,
) -> Result<(ConversationSnapshot, SessionState)>
pub async fn load_checkpoint( &self, session_id: Uuid, checkpoint_id: Uuid, ) -> Result<(ConversationSnapshot, SessionState)>
Load checkpoint
Sourcepub async fn get_statistics(&self) -> Result<StorageStatistics>
pub async fn get_statistics(&self) -> Result<StorageStatistics>
Get storage statistics
Auto Trait Implementations§
impl Freeze for SessionStore
impl !RefUnwindSafe for SessionStore
impl Send for SessionStore
impl Sync for SessionStore
impl Unpin for SessionStore
impl !UnwindSafe for SessionStore
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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