code_repo_wiki/model/
edge.rs1use petgraph::stable_graph::EdgeIndex;
2use serde::{Deserialize, Serialize};
3
4use super::node::NodeId;
5
6pub type EdgeId = EdgeIndex<u32>;
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
11pub struct CodeEdge {
12 pub id: EdgeId,
13 pub kind: EdgeKind,
14 pub source: NodeId,
15 pub target: NodeId,
16 pub weight: f64,
18 pub location: Option<(usize, usize)>,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
24pub enum EdgeKind {
25 Contains,
27 Calls,
29 Imports,
31 Implements,
33}
34
35impl EdgeKind {
36 pub fn as_str(&self) -> &'static str {
37 match self {
38 EdgeKind::Contains => "contains",
39 EdgeKind::Calls => "calls",
40 EdgeKind::Imports => "imports",
41 EdgeKind::Implements => "implements",
42 }
43 }
44
45}