pub struct InMemoryConversationMemory { /* private fields */ }Expand description
A simple thread-safe in-memory ConversationMemory backed by a HashMap.
Messages are stored in process memory only and lost on restart. Useful for
tests, examples, and short-lived agents. Pass a closure to
InMemoryConversationMemory::with_filter to apply a history-shaping
transformation on every load (truncation, summarization, re-ordering, etc.).
Reusable named policies live in the rig-memory companion crate.
Implementations§
Source§impl InMemoryConversationMemory
impl InMemoryConversationMemory
Sourcepub fn with_filter<F>(self, filter: F) -> Selfwhere
F: MessageFilter + 'static,
pub fn with_filter<F>(self, filter: F) -> Selfwhere
F: MessageFilter + 'static,
Apply filter to the loaded message list on every load.
The filter runs after raw messages are read from the store and before
they are returned to the agent. Use it for truncation, summarization, or
any other shaping. For reusable named policies, depend on rig-memory.
Trait Implementations§
Source§impl Clone for InMemoryConversationMemory
impl Clone for InMemoryConversationMemory
Source§fn clone(&self) -> InMemoryConversationMemory
fn clone(&self) -> InMemoryConversationMemory
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl ConversationMemory for InMemoryConversationMemory
impl ConversationMemory for InMemoryConversationMemory
Source§fn load<'a>(
&'a self,
conversation_id: &'a str,
) -> WasmBoxedFuture<'a, Result<Vec<Message>, MemoryError>>
fn load<'a>( &'a self, conversation_id: &'a str, ) -> WasmBoxedFuture<'a, Result<Vec<Message>, MemoryError>>
Load the full conversation history for
conversation_id. Read moreSource§fn append<'a>(
&'a self,
conversation_id: &'a str,
messages: Vec<Message>,
) -> WasmBoxedFuture<'a, Result<(), MemoryError>>
fn append<'a>( &'a self, conversation_id: &'a str, messages: Vec<Message>, ) -> WasmBoxedFuture<'a, Result<(), MemoryError>>
Source§fn clear<'a>(
&'a self,
conversation_id: &'a str,
) -> WasmBoxedFuture<'a, Result<(), MemoryError>>
fn clear<'a>( &'a self, conversation_id: &'a str, ) -> WasmBoxedFuture<'a, Result<(), MemoryError>>
Remove all stored messages for
conversation_id.Source§impl Debug for InMemoryConversationMemory
impl Debug for InMemoryConversationMemory
Source§impl Default for InMemoryConversationMemory
impl Default for InMemoryConversationMemory
Source§fn default() -> InMemoryConversationMemory
fn default() -> InMemoryConversationMemory
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for InMemoryConversationMemory
impl !RefUnwindSafe for InMemoryConversationMemory
impl Send for InMemoryConversationMemory
impl Sync for InMemoryConversationMemory
impl Unpin for InMemoryConversationMemory
impl UnsafeUnpin for InMemoryConversationMemory
impl !UnwindSafe for InMemoryConversationMemory
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> CloneDebuggableStorage for Twhere
T: DebuggableStorage + Clone,
impl<T> CloneDebuggableStorage for Twhere
T: DebuggableStorage + Clone,
fn clone_storage(&self) -> Box<dyn CloneDebuggableStorage>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CloneableStorage for T
impl<T> CloneableStorage for T
fn clone_storage(&self) -> Box<dyn CloneableStorage>
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> 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