1use serde::{Deserialize, Serialize};
7use std::collections::HashMap;
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
11pub struct SdkNode {
12 pub id: String,
14 pub labels: Vec<String>,
16 pub properties: HashMap<String, serde_json::Value>,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize)]
22pub struct SdkEdge {
23 pub id: String,
25 pub source: String,
27 pub target: String,
29 #[serde(rename = "type")]
31 pub edge_type: String,
32 pub properties: HashMap<String, serde_json::Value>,
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
38pub struct QueryResult {
39 pub nodes: Vec<SdkNode>,
41 pub edges: Vec<SdkEdge>,
43 pub columns: Vec<String>,
45 pub records: Vec<Vec<serde_json::Value>>,
47}
48
49impl QueryResult {
50 pub fn len(&self) -> usize {
52 self.records.len()
53 }
54
55 pub fn is_empty(&self) -> bool {
57 self.records.is_empty()
58 }
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize)]
63pub struct ServerStatus {
64 pub status: String,
66 pub version: String,
68 pub storage: StorageStats,
70}
71
72#[derive(Debug, Clone, Serialize, Deserialize)]
74pub struct StorageStats {
75 pub nodes: u64,
77 pub edges: u64,
79}