use crate::ids::{EdgeId, NodeId, Scope};
use crate::props::{PropValue, Props};
use serde::{Deserialize, Serialize};
use smol_str::SmolStr;
use std::collections::BTreeMap;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum Op {
CreateNode {
id: NodeId,
scope: Scope,
label: SmolStr,
props: Props,
},
SetNodeProps {
id: NodeId,
props: BTreeMap<String, Option<PropValue>>,
},
SetEmbedding {
id: NodeId,
model: String,
vector: Vec<f32>,
},
RemoveNode {
id: NodeId,
},
CreateEdge {
id: EdgeId,
scope: Scope,
ty: SmolStr,
from: NodeId,
to: NodeId,
props: Props,
valid_from: Option<i64>,
},
CloseEdge {
id: EdgeId,
valid_to: Option<i64>,
},
}