xz_knowledge_graph/types/
graph.rs1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5use super::entity::Entity;
6use super::relation::Relation;
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct SubGraph {
11 pub center: Entity,
12 pub entities: Vec<Entity>,
13 pub relations: Vec<Relation>,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18pub struct PathStep {
19 pub entity: Entity,
20 pub relation: Relation,
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct GraphStats {
26 pub total_entities: usize,
27 pub total_relations: usize,
28 pub entity_types: HashMap<String, usize>,
29 pub relation_types: HashMap<String, usize>,
30 pub avg_degree: f64,
31 pub max_degree: usize,
32 pub orphan_entities: usize,
33 pub db_size_bytes: u64,
34}