use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase", deny_unknown_fields)]
#[non_exhaustive]
pub struct MemoryPutBody {
pub context_id: String,
pub key: String,
pub value: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ext: Option<Value>,
}
impl MemoryPutBody {
pub fn new(context_id: String, key: String, value: String) -> Self {
Self {
context_id,
key,
value,
ext: None,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MemoryPutResponse {
pub key: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase", deny_unknown_fields)]
#[non_exhaustive]
pub struct MemoryListBody {
pub context_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ext: Option<Value>,
}
impl MemoryListBody {
pub fn new(context_id: String) -> Self {
Self {
context_id,
ext: None,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MemoryItem {
pub key: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MemoryListResponse {
pub items: Vec<MemoryItem>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase", deny_unknown_fields)]
#[non_exhaustive]
pub struct MemoryDeleteBody {
pub context_id: String,
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ext: Option<Value>,
}
impl MemoryDeleteBody {
pub fn new(context_id: String, key: String) -> Self {
Self {
context_id,
key,
ext: None,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MemoryDeleteResponse {
pub key: String,
}