package main // AnalysisResult holds all extracted data from Go source analysis. type AnalysisResult struct { Modules []Module Dependencies []Dependency Imports []ImportInfo } // TotalFeatures returns the count of all features across all modules. func (r *AnalysisResult) TotalFeatures() int { count := 0 for _, m := range r.Modules { count += len(m.Features) } return count } // TotalTests returns the count of all tests across all modules. func (r *AnalysisResult) TotalTests() int { count := 0 for _, m := range r.Modules { count += len(m.Tests) } return count } // Module represents a logical grouping of Go source files. type Module struct { Name string Description string GoPackage string GoFile string // primary file or directory GoLineCount int Features []Feature Tests []TestFunc } // Feature represents a function or method extracted from Go source. type Feature struct { Name string Description string GoFile string GoClass string // receiver type, empty for package-level functions GoMethod string GoLineNumber int GoLineCount int } // TestFunc represents a test function extracted from Go source. type TestFunc struct { Name string Description string GoFile string GoClass string GoMethod string GoLineNumber int GoLineCount int // FeatureName links this test to a feature by naming convention FeatureName string } // Dependency represents a call relationship between two items. type Dependency struct { SourceModule string SourceFeature string // empty for module-level deps TargetModule string TargetFeature string // empty for module-level deps DependencyKind string // "calls" } // ImportInfo represents a Go import path found in source files. type ImportInfo struct { ImportPath string IsStdlib bool UsedInFiles []string }