#![cfg(all(feature = "comms", feature = "memory"))]
use serde::{Deserialize, Serialize};
pub use crate::mcp::memory_ops::WireMemoryEntry;
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum MemoryOp {
Get {
vis_byte: u8,
owner: String,
key: String,
},
Put {
vis_byte: u8,
owner: String,
key: String,
value: String,
tags: Vec<String>,
},
List {
vis_byte: u8,
owner: String,
prefix: String,
tag: Option<String>,
limit: u32,
cursor: Option<Vec<u8>>,
},
Delete {
vis_byte: u8,
owner: String,
key: String,
},
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum MemoryOutcome {
Put {
created_at: i64,
updated_at: i64,
},
Got(Option<WireMemoryEntry>),
Listed {
entries: Vec<WireMemoryEntry>,
total: u32,
truncated: bool,
next_cursor: Option<Vec<u8>>,
},
Deleted {
deleted: bool,
},
}