use crate::pod_coordination::types::*;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
pub mod algorithms;
pub mod clustering;
pub mod edges;
pub mod nodes;
pub use algorithms::*;
pub use clustering::*;
pub use edges::*;
pub use nodes::*;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CentralityAlgorithms;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct ClusteringAlgorithms;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CommunityDetection;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GraphAlgorithms;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GraphEdge {
pub source: String,
pub target: String,
pub weight: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GraphMetrics {
pub node_count: usize,
pub edge_count: usize,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GraphNode {
pub id: String,
pub data: HashMap<String, String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GraphOptimization;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GraphPartitioning;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GraphStatistics {
pub metrics: GraphMetrics,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GraphTraversal;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct TopologyGraph {
pub nodes: Vec<GraphNode>,
pub edges: Vec<GraphEdge>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct TopologyGraphBuilder;