use async_trait::async_trait;
use rskit_errors::AppError;
use rskit_llm::types::Message;
#[async_trait]
pub trait Memory: Send + Sync {
async fn load(&self, session_id: &str) -> Result<Vec<Message>, AppError>;
async fn save(&self, session_id: &str, messages: &[Message]) -> Result<(), AppError>;
async fn append(&self, session_id: &str, messages: &[Message]) -> Result<(), AppError>;
async fn clear(&self, session_id: &str) -> Result<(), AppError>;
}