weavatrix_memory/domain/
view.rs1use super::{MemoryFact, MemoryNode};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
5pub struct MemoryView {
6 pub nodes: Vec<MemoryNode>,
7 pub facts: Vec<MemoryFact>,
8}
9
10#[derive(Debug, Clone, Default, PartialEq, Eq)]
11pub struct MemoryViewRef<'a> {
12 pub nodes: Vec<&'a MemoryNode>,
13 pub facts: Vec<&'a MemoryFact>,
14}
15
16impl MemoryViewRef<'_> {
17 #[must_use]
18 pub fn into_owned(self) -> MemoryView {
19 MemoryView {
20 nodes: self.nodes.into_iter().cloned().collect(),
21 facts: self.facts.into_iter().cloned().collect(),
22 }
23 }
24}