langchain_rust/memory/
dummy_memory.rs1use std::sync::Arc;
2
3use tokio::sync::Mutex;
4
5use crate::schemas::{memory::BaseMemory, messages::Message};
6
7pub struct DummyMemory {}
8
9impl DummyMemory {
10 pub fn new() -> Self {
11 Self {}
12 }
13}
14
15impl Into<Arc<dyn BaseMemory>> for DummyMemory {
16 fn into(self) -> Arc<dyn BaseMemory> {
17 Arc::new(self)
18 }
19}
20
21impl Into<Arc<Mutex<dyn BaseMemory>>> for DummyMemory {
22 fn into(self) -> Arc<Mutex<dyn BaseMemory>> {
23 Arc::new(Mutex::new(self))
24 }
25}
26
27impl BaseMemory for DummyMemory {
28 fn messages(&self) -> Vec<Message> {
29 vec![]
30 }
31 fn add_message(&mut self, _message: Message) {}
32 fn clear(&mut self) {}
33}
34
35#[cfg(test)]
36mod tests {
37 use super::*;
38
39 #[test]
40 fn never_stores_messages() {
41 let mut memory = DummyMemory::new();
42 memory.add_user_message(&"ignored");
43 memory.add_ai_message(&"ignored");
44 assert!(memory.messages().is_empty());
45 assert_eq!(memory.to_string(), "");
46 }
47}