pub struct CodeGraph {
pub nodes: HashMap<u64, GraphNode>,
pub edges: Vec<GraphEdge>,
pub next_id: u64,
}Fields§
§nodes: HashMap<u64, GraphNode>§edges: Vec<GraphEdge>§next_id: u64Implementations§
Source§impl CodeGraph
impl CodeGraph
pub fn new() -> Self
pub fn add_node(&mut self, kind: NodeKind, name: &str) -> u64
pub fn add_edge(&mut self, source_id: u64, target_id: u64, kind: EdgeKind)
pub fn get_node(&self, id: u64) -> Option<&GraphNode>
pub fn find_nodes_by_name(&self, name: &str) -> Vec<&GraphNode>
pub fn find_nodes_by_path(&self, path: &str) -> Vec<&GraphNode>
pub fn reverse_dependencies(&self, node_id: u64) -> Vec<&GraphEdge>
pub fn dependencies(&self, node_id: u64) -> Vec<&GraphEdge>
pub fn find_path(&self, from_id: u64, to_id: u64) -> Option<Vec<u64>>
pub fn detect_cycles(&self) -> Vec<Vec<u64>>
pub fn to_petgraph(&self) -> PetGraphWrapper
pub fn importance_scores(&self) -> HashMap<u64, f64>
pub fn bfs_reachable(&self, start_id: u64, max_depth: usize) -> Vec<u64>
Trait Implementations§
Source§impl<'de> Deserialize<'de> for CodeGraph
impl<'de> Deserialize<'de> for CodeGraph
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
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