pub struct InMemoryHistoryStore { /* private fields */ }Expand description
Volatile HistoryStore kept entirely in process memory. Intended
for tests and short-lived sessions where durable persistence is not
required.
§Panics
save / load .expect() on an internal Mutex — they only
panic if the lock is poisoned by a previous panic in another
task that held the guard.
Implementations§
Source§impl InMemoryHistoryStore
impl InMemoryHistoryStore
Sourcepub fn new() -> InMemoryHistoryStore
pub fn new() -> InMemoryHistoryStore
Build an empty store. Equivalent to
InMemoryHistoryStore::default.
Trait Implementations§
Source§impl Default for InMemoryHistoryStore
impl Default for InMemoryHistoryStore
Source§fn default() -> InMemoryHistoryStore
fn default() -> InMemoryHistoryStore
Returns the “default value” for a type. Read more
Source§impl HistoryStore for InMemoryHistoryStore
impl HistoryStore for InMemoryHistoryStore
Source§type Error = Infallible
type Error = Infallible
Error type surfaced from
save /
load. Use std::convert::Infallible when the
implementation cannot fail (see InMemoryHistoryStore).Source§fn save<'life0, 'life1, 'async_trait>(
&'life0 self,
snapshot: &'life1 ConversationSnapshot,
) -> Pin<Box<dyn Future<Output = Result<(), <InMemoryHistoryStore as HistoryStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
InMemoryHistoryStore: 'async_trait,
fn save<'life0, 'life1, 'async_trait>(
&'life0 self,
snapshot: &'life1 ConversationSnapshot,
) -> Pin<Box<dyn Future<Output = Result<(), <InMemoryHistoryStore as HistoryStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
InMemoryHistoryStore: 'async_trait,
Persist
snapshot so a later load returns it.
Implementations should treat this as an overwrite — the façade
passes the full updated ConversationSnapshot every time
rather than diffing.Source§fn load<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<ConversationSnapshot>, <InMemoryHistoryStore as HistoryStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
InMemoryHistoryStore: 'async_trait,
fn load<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<ConversationSnapshot>, <InMemoryHistoryStore as HistoryStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
InMemoryHistoryStore: 'async_trait,
Return the most recently persisted snapshot, or
Ok(None) when
the store has never been written to. Returning Ok(None) lets
callers default-init the conversation on first run instead of
special-casing a missing payload.Auto Trait Implementations§
impl !Freeze for InMemoryHistoryStore
impl RefUnwindSafe for InMemoryHistoryStore
impl Send for InMemoryHistoryStore
impl Sync for InMemoryHistoryStore
impl Unpin for InMemoryHistoryStore
impl UnsafeUnpin for InMemoryHistoryStore
impl UnwindSafe for InMemoryHistoryStore
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