use serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct MemoryEntry {
pub id: Uuid,
pub key: String,
pub content: String,
pub created_at: i64,
}
pub trait MemoryPort: Send + Sync {
type Error: std::error::Error + Send + Sync + 'static;
fn append(&self, key: &str, content: &str) -> Result<Uuid, Self::Error>;
fn get(&self, key: &str) -> Result<Option<String>, Self::Error>;
fn recent(&self, limit: usize) -> Result<Vec<MemoryEntry>, Self::Error>;
fn history(&self) -> Result<Vec<MemoryEntry>, Self::Error>;
}