Skip to main content

codelens_engine/call_graph/
types.rs

1use serde::Serialize;
2
3#[derive(Debug, Clone, Serialize)]
4pub struct CallEdge {
5    pub caller_file: String,
6    pub caller_name: String,
7    pub callee_name: String,
8    #[serde(skip_serializing)]
9    pub callee_qualifier: Option<String>,
10    pub line: usize,
11    /// Resolved file where the callee is defined (None if unresolved).
12    #[serde(skip_serializing_if = "Option::is_none")]
13    pub resolved_file: Option<String>,
14    /// Confidence of the resolution (0.0–1.0). Higher = more certain.
15    pub confidence: f64,
16    /// Which resolution strategy succeeded.
17    #[serde(skip_serializing_if = "Option::is_none")]
18    pub resolution_strategy: Option<&'static str>,
19    #[serde(skip_serializing)]
20    pub canonical_callee_name: Option<String>,
21}
22
23#[derive(Debug, Clone, Serialize)]
24pub struct CallerEntry {
25    pub file: String,
26    pub function: String,
27    pub line: usize,
28    /// Confidence that this caller actually calls the target (0.0–1.0).
29    pub confidence: f64,
30    #[serde(skip_serializing_if = "Option::is_none")]
31    pub resolution: Option<&'static str>,
32}
33
34#[derive(Debug, Clone, Serialize)]
35pub struct CalleeEntry {
36    pub name: String,
37    pub line: usize,
38    #[serde(skip_serializing_if = "Option::is_none")]
39    pub resolved_file: Option<String>,
40    pub confidence: f64,
41    #[serde(skip_serializing_if = "Option::is_none")]
42    pub resolution: Option<&'static str>,
43}