Public declaration syntax from forge-rs/crates/forge-coder/src/dependency.rs Original source SHA-256: 1df274a4491d4792386d8664bdd8f936c8a670814864b4dabc297a376b4e4f0b Function bodies and constant values are omitted. This is not the complete implementation. Source line 44 #[derive(Debug, Clone, Serialize, Deserialize)] pub struct PackageNode { /// The package name. pub name: String, /// The path to the package directory. pub path: PathBuf, /// The path to the manifest file. pub manifest_path: PathBuf, /// The version string. pub version: Option } Source line 57 #[derive(Debug, Clone, Serialize, Deserialize)] pub struct DependencyEdge { /// The package that depends on another (the "from" side). pub from: String, /// The package being depended on (the "to" side). pub to: String, /// Whether this is a dev-dependency. pub is_dev: bool, /// Whether this is a build-dependency. pub is_build: bool } Source line 73 #[derive(Debug, Clone, Serialize, Deserialize)] pub struct DependencyGraph { } Source line 84 pub fn new() -> Self; Source line 93 pub fn add_package(&mut self, node: PackageNode); Source line 98 pub fn add_edge(&mut self, edge: DependencyEdge); Source line 107 pub fn dependencies(&self, package: &str) -> Vec<&DependencyEdge>; Source line 115 pub fn reverse_dependencies(&self, package: &str) -> Vec<&DependencyEdge>; Source line 127 pub fn change_impact(&self, package: &str) -> Vec; Source line 150 pub fn packages(&self) -> Vec<&PackageNode>; Source line 155 pub fn get_package(&self, name: &str) -> Option<&PackageNode>; Source line 160 pub fn package_count(&self) -> usize; Source line 165 pub fn edge_count(&self) -> usize; Source line 182 pub async fn from_cargo_workspace(workspace_root: &Path) -> ForgeCoderResult;