pub struct SessionStore { /* private fields */ }Expand description
SQLite-backed session storage.
All public methods are synchronous and hold a std::sync::Mutex<Connection>
for the duration of a single statement (or a single BEGIN…COMMIT block).
They are safe to call from an async context because they do not .await
while the lock is held — but they are blocking I/O, so callers that run
in a Tokio worker thread should wrap calls in tokio::task::spawn_blocking
when latency matters (e.g. inside a hot request path).
Implementations§
Source§impl SessionStore
impl SessionStore
pub fn open(db_path: &Path) -> Result<Self>
pub fn save(&self, id: &str, messages: &[Msg], name: Option<&str>) -> Result<()>
pub fn load(&self, id: &str) -> Option<Session>
pub fn list(&self) -> Vec<Session>
pub fn delete(&self, id: &str) -> Result<()>
pub fn search(&self, query: &str, limit: usize) -> Vec<SessionSearchHit>
pub fn scroll( &self, id: &str, around: usize, before: usize, after: usize, ) -> Option<SessionSlice>
pub fn recent_inputs(&self, limit: usize) -> Vec<String>
Auto Trait Implementations§
impl !Freeze for SessionStore
impl RefUnwindSafe for SessionStore
impl Send for SessionStore
impl Sync for SessionStore
impl Unpin for SessionStore
impl UnsafeUnpin 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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