use crate::edge::EdgeStrategy;
use crate::types::StoragePropertyDef;
use linkrs_core::types::{LabelId, Timestamp, VertexId};
use linkrs_core::Value;
pub struct CreateEdgeTypeParams<'a> {
pub name: &'a str, pub user_name: &'a str, pub src_label: LabelId,
pub dst_label: LabelId,
pub properties: Vec<StoragePropertyDef>,
pub oe_strategy: EdgeStrategy,
pub ie_strategy: EdgeStrategy,
}
pub struct EdgeOperationParams {
pub edge_label: LabelId,
pub src_label: LabelId,
pub src_id: VertexId,
pub dst_label: LabelId,
pub dst_id: VertexId,
pub rank: i64,
}
pub struct InsertEdgeParams<'a> {
pub edge_label: LabelId,
pub src_label: LabelId,
pub src_id: VertexId,
pub dst_label: LabelId,
pub dst_id: VertexId,
pub rank: i64,
pub properties: &'a [(std::sync::Arc<str>, Value)],
pub ts: Timestamp,
}
pub struct BatchEdgeInsert<'a> {
pub src_id: VertexId,
pub dst_id: VertexId,
pub rank: i64,
pub properties: &'a [(std::sync::Arc<str>, Value)],
}
pub struct InsertEdgesBatchParams<'a> {
pub edge_label: LabelId,
pub src_label: LabelId,
pub dst_label: LabelId,
pub edges: &'a [BatchEdgeInsert<'a>],
pub ts: Timestamp,
}
pub struct BatchEdgeDelete {
pub src_id: VertexId,
pub dst_id: VertexId,
pub rank: i64,
}
pub struct DeleteEdgesBatchParams<'a> {
pub edge_label: LabelId,
pub src_label: LabelId,
pub dst_label: LabelId,
pub edges: &'a [BatchEdgeDelete],
pub ts: Timestamp,
}