pub struct SqliteSessionStore { /* private fields */ }Expand description
SQLite implementation of SessionStore
Implementations§
Source§impl SqliteSessionStore
impl SqliteSessionStore
Sourcepub async fn new(path: &Path) -> Result<SqliteSessionStore, SessionStoreError>
pub async fn new(path: &Path) -> Result<SqliteSessionStore, SessionStoreError>
Create a new SQLite session store
Trait Implementations§
Source§impl SessionStore for SqliteSessionStore
impl SessionStore for SqliteSessionStore
fn create_session<'life0, 'async_trait>(
&'life0 self,
config: SessionConfig,
) -> Pin<Box<dyn Future<Output = Result<Session, SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteSessionStore: 'async_trait,
fn get_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Session>, SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteSessionStore: 'async_trait,
fn update_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session: &'life1 Session,
) -> Pin<Box<dyn Future<Output = Result<(), SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteSessionStore: 'async_trait,
fn delete_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteSessionStore: 'async_trait,
fn list_sessions<'life0, 'async_trait>(
&'life0 self,
filter: SessionFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<SessionInfo>, SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteSessionStore: 'async_trait,
fn append_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
message: &'life2 Message,
) -> Pin<Box<dyn Future<Output = Result<(), SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
SqliteSessionStore: 'async_trait,
fn get_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
after_sequence: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Message>, SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteSessionStore: 'async_trait,
fn create_tool_call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
tool_call: &'life2 ToolCall,
) -> Pin<Box<dyn Future<Output = Result<(), SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
SqliteSessionStore: 'async_trait,
fn update_tool_call<'life0, 'life1, 'async_trait>(
&'life0 self,
tool_call_id: &'life1 str,
update: ToolCallUpdate,
) -> Pin<Box<dyn Future<Output = Result<(), SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteSessionStore: 'async_trait,
fn get_pending_tool_calls<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<ToolCall>, SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteSessionStore: 'async_trait,
fn append_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
event: &'life2 StreamEvent,
) -> Pin<Box<dyn Future<Output = Result<u64, SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
SqliteSessionStore: 'async_trait,
fn get_events<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
after_sequence: u64,
limit: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<Vec<(u64, StreamEvent)>, SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteSessionStore: 'async_trait,
fn delete_events_before<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
before_sequence: u64,
) -> Pin<Box<dyn Future<Output = Result<u64, SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteSessionStore: 'async_trait,
fn update_active_message_id<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
message_id: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<(), SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
SqliteSessionStore: 'async_trait,
Auto Trait Implementations§
impl !RefUnwindSafe for SqliteSessionStore
impl !UnwindSafe for SqliteSessionStore
impl Freeze for SqliteSessionStore
impl Send for SqliteSessionStore
impl Sync for SqliteSessionStore
impl Unpin for SqliteSessionStore
impl UnsafeUnpin for SqliteSessionStore
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
impl<T> ErasedDestructor for Twhere
T: 'static,
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> SessionStoreExt for Twhere
T: SessionStore + ?Sized,
impl<T> SessionStoreExt for Twhere
T: SessionStore + ?Sized,
Source§fn get_messages_paginated<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
page_size: u32,
cursor: Option<MessageCursor>,
) -> Pin<Box<dyn Future<Output = Result<MessagePage, SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
fn get_messages_paginated<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
page_size: u32,
cursor: Option<MessageCursor>,
) -> Pin<Box<dyn Future<Output = Result<MessagePage, SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
Get messages with pagination support
Source§fn archive_session<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
archive_store: &'life2 dyn ArchiveStore,
) -> Pin<Box<dyn Future<Output = Result<String, SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: Sync + 'async_trait,
fn archive_session<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
archive_store: &'life2 dyn ArchiveStore,
) -> Pin<Box<dyn Future<Output = Result<String, SessionStoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: Sync + 'async_trait,
Archive a completed session