use crate::symbol::{FuncKey, Lang};
/// Identifies a specific call site within a caller function.
#[derive(Clone, Debug, Hash, PartialEq, Eq)]
pub struct CallSiteKey {
pub caller_lang: Lang,
/// Project-relative file path of the caller.
pub caller_namespace: String,
/// Enclosing function name at the call site.
pub caller_func: String,
/// The identifier at the call site (callee name as written).
pub callee_symbol: String,
/// Per-function call ordinal (0-based). `0` acts as a wildcard during
/// matching (matches any ordinal).
pub ordinal: u32,
}
/// An explicit cross-language bridge edge.
///
/// Connects a call site in one language to a function definition in another.
/// Without an `InteropEdge`, cross-language resolution is never attempted —
/// this prevents false positives from name collisions across languages.
#[derive(Clone, Debug)]
pub struct InteropEdge {
pub from: CallSiteKey,
pub to: FuncKey,
}