mod centrality;
mod community;
mod components;
pub(crate) mod parsing;
mod paths;
mod similarity;
mod traversal;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PageRankResult {
pub node_id: String,
pub user_id: Option<String>,
pub score: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CommunityResult {
pub node_id: String,
pub user_id: Option<String>,
pub community: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ShortestPathResult {
pub path: Vec<String>,
pub distance: Option<f64>,
pub found: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DegreeCentralityResult {
pub node_id: String,
pub user_id: Option<String>,
pub in_degree: i64,
pub out_degree: i64,
pub degree: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ComponentResult {
pub node_id: String,
pub user_id: Option<String>,
pub component: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BetweennessCentralityResult {
pub node_id: String,
pub user_id: Option<String>,
pub score: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ClosenessCentralityResult {
pub node_id: String,
pub user_id: Option<String>,
pub score: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TriangleCountResult {
pub node_id: String,
pub user_id: Option<String>,
pub triangles: i64,
pub clustering_coefficient: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AStarResult {
pub path: Vec<String>,
pub distance: Option<f64>,
pub found: bool,
pub nodes_explored: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TraversalResult {
pub user_id: String,
pub depth: i64,
pub order: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NodeSimilarityResult {
pub node1: String,
pub node2: String,
pub similarity: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct KnnResult {
pub neighbor: String,
pub similarity: f64,
pub rank: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EigenvectorCentralityResult {
pub node_id: String,
pub user_id: Option<String>,
pub score: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ApspResult {
pub source: String,
pub target: String,
pub distance: f64,
}