pub struct CodeGraph {
pub graph: DiGraph<NodeData, EdgeData>,
pub snapshot_id: SnapshotId,
/* private fields */
}Expand description
The canonical dependency graph for a codebase snapshot.
Fields§
§graph: DiGraph<NodeData, EdgeData>The underlying petgraph with our node/edge data types.
snapshot_id: SnapshotIdSnapshot identifier for this graph as discussed before.
Implementations§
Source§impl CodeGraph
impl CodeGraph
Sourcepub fn new(snapshot_id: SnapshotId) -> Self
pub fn new(snapshot_id: SnapshotId) -> Self
Creates an empty CodeGraph for the given snapshot.
pub fn file_node_index(&self, file_id: FileId) -> Option<NodeIndex>
pub fn symbol_node_index(&self, symbol_id: SymbolId) -> Option<NodeIndex>
pub fn file_node(&self, file_id: FileId) -> Option<&FileNode>
pub fn symbol_node(&self, symbol_id: SymbolId) -> Option<&SymbolNode>
pub fn file_count(&self) -> usize
pub fn symbol_count(&self) -> usize
pub fn external_count(&self) -> usize
pub fn node_count(&self) -> usize
pub fn edge_count(&self) -> usize
Sourcepub fn get_or_create_external_node(
&mut self,
raw_path: String,
language: LangId,
) -> NodeIndex
pub fn get_or_create_external_node( &mut self, raw_path: String, language: LangId, ) -> NodeIndex
Resolves or creates the External node for a raw unresolved path, keeping
external_index consistent so repeated loads reuse a single node.
Sourcepub fn add_edge_normalized(
&mut self,
source: NodeIndex,
target: NodeIndex,
kind: EdgeKind,
confidence: f32,
)
pub fn add_edge_normalized( &mut self, source: NodeIndex, target: NodeIndex, kind: EdgeKind, confidence: f32, )
Adds an edge, normalizing duplicate (src, dst, kind) triples by max-merging
confidence so injected edges obey the same invariant as builder-constructed ones.
pub fn files(&self) -> impl Iterator<Item = (FileId, &FileNode)> + '_
pub fn symbols(&self) -> impl Iterator<Item = (SymbolId, &SymbolNode)> + '_
pub fn edges_of_kind( &self, kind: EdgeKind, ) -> impl Iterator<Item = (NodeIndex, NodeIndex)> + '_
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CodeGraph
impl RefUnwindSafe for CodeGraph
impl Send for CodeGraph
impl Sync for CodeGraph
impl Unpin for CodeGraph
impl UnsafeUnpin for CodeGraph
impl UnwindSafe for CodeGraph
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more