synaptic_memory/
buffer.rs1use std::sync::Arc;
2
3use async_trait::async_trait;
4use synaptic_core::{MemoryStore, Message, SynapticError};
5
6pub struct ConversationBufferMemory {
11 store: Arc<dyn MemoryStore>,
12}
13
14impl ConversationBufferMemory {
15 pub fn new(store: Arc<dyn MemoryStore>) -> Self {
17 Self { store }
18 }
19}
20
21#[async_trait]
22impl MemoryStore for ConversationBufferMemory {
23 async fn append(&self, session_id: &str, message: Message) -> Result<(), SynapticError> {
24 self.store.append(session_id, message).await
25 }
26
27 async fn load(&self, session_id: &str) -> Result<Vec<Message>, SynapticError> {
28 self.store.load(session_id).await
29 }
30
31 async fn clear(&self, session_id: &str) -> Result<(), SynapticError> {
32 self.store.clear(session_id).await
33 }
34}