weavatrix-memory 0.3.2

Event-sourced bitemporal evidence memory and budgeted context retrieval for coding agents
Documentation
use super::{MemoryFact, MemoryNode};
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
pub struct MemoryView {
    pub nodes: Vec<MemoryNode>,
    pub facts: Vec<MemoryFact>,
}

#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub struct MemoryViewRef<'a> {
    pub nodes: Vec<&'a MemoryNode>,
    pub facts: Vec<&'a MemoryFact>,
}

impl MemoryViewRef<'_> {
    #[must_use]
    pub fn into_owned(self) -> MemoryView {
        MemoryView {
            nodes: self.nodes.into_iter().cloned().collect(),
            facts: self.facts.into_iter().cloned().collect(),
        }
    }
}