Public declaration syntax from forge-rs/crates/forge-coder/src/repo.rs Original source SHA-256: e0e07399da1479a8417766ea4f440dcf9cc30f16030324ac63426998a8511b73 Function bodies and constant values are omitted. This is not the complete implementation. Source line 43 #[derive(Debug, Clone, Serialize, Deserialize)] pub struct DetectedLanguage { /// The language name (e.g., "Rust", "TypeScript", "Python"). pub name: String, /// The file extensions associated with this language. pub extensions: Vec, /// The number of files detected for this language. pub file_count: usize } Source line 54 #[derive(Debug, Clone, Serialize, Deserialize)] pub struct DetectedBuildSystem { /// The build system name (e.g., "cargo", "npm", "go", "pip"). pub name: String, /// The manifest file that identified this build system. pub manifest_path: PathBuf, /// Whether this is a workspace/monorepo manifest. pub is_workspace: bool } Source line 65 #[derive(Debug, Clone, Serialize, Deserialize)] pub struct DetectedFramework { /// The framework name (e.g., "tokio", "actix-web", "React", "FastAPI"). pub name: String, /// The language this framework is associated with. pub language: String, /// How the framework was detected (manifest dependency, import, config file). pub detection_method: String } Source line 76 #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] pub enum RepoLayout { /// A single-package repository. SinglePackage, /// A multi-package workspace (e.g., Cargo workspace, npm workspaces). Workspace, /// A monorepo with multiple independent packages. Monorepo, /// The layout could not be determined. Unknown, } Source line 103 #[derive(Debug, Clone, Serialize, Deserialize)] pub struct RepoProfile { } Source line 124 pub fn repo_root(&self) -> &Path; Source line 129 pub fn languages(&self) -> &[DetectedLanguage]; Source line 134 pub fn build_systems(&self) -> &[DetectedBuildSystem]; Source line 139 pub fn frameworks(&self) -> &[DetectedFramework]; Source line 144 pub fn layout(&self) -> RepoLayout; Source line 149 pub fn total_files(&self) -> usize; Source line 154 pub fn total_directories(&self) -> usize; Source line 159 pub fn key_directories(&self) -> &[PathBuf]; Source line 164 pub fn primary_language(&self) -> Option<&DetectedLanguage>; Source line 169 pub fn uses_language(&self, name: &str) -> bool; Source line 177 pub fn uses_build_system(&self, name: &str) -> bool; Source line 213 pub struct RepoScanner { } Source line 227 pub fn new(root: &Path) -> Self; Source line 247 pub fn with_max_depth(mut self, depth: usize) -> Self; Source line 253 pub fn skip_directory(mut self, name: impl Into) -> Self; Source line 264 pub async fn scan(&self) -> ForgeCoderResult;