codeprism_core/linkers/
mod.rs

1//! Cross-language linkers for detecting relationships between different languages
2
3use crate::ast::{Edge, Node};
4use crate::error::Result;
5
6pub mod symbol_resolver;
7
8pub use symbol_resolver::SymbolResolver;
9
10/// Trait for cross-language linkers
11pub trait Linker: Send + Sync {
12    /// Name of the linker
13    fn name(&self) -> &str;
14
15    /// Find cross-language edges
16    fn find_edges(&self, nodes: &[Node]) -> Result<Vec<Edge>>;
17}
18
19/// REST API linker
20pub struct RestLinker;
21
22impl Linker for RestLinker {
23    fn name(&self) -> &str {
24        "REST"
25    }
26
27    fn find_edges(&self, _nodes: &[Node]) -> Result<Vec<Edge>> {
28        // TODO: Implement REST path to controller linking
29        Ok(Vec::new())
30    }
31}
32
33/// SQL query linker
34pub struct SqlLinker;
35
36impl Linker for SqlLinker {
37    fn name(&self) -> &str {
38        "SQL"
39    }
40
41    fn find_edges(&self, _nodes: &[Node]) -> Result<Vec<Edge>> {
42        // TODO: Implement SQL query to table linking
43        Ok(Vec::new())
44    }
45}