--- /dev/null
+package lint
+
+import (
+ "time"
+
+ "golang.org/x/tools/go/analysis"
+)
+
+const (
+ StateInitializing = 0
+ StateGraph = 1
+ StateProcessing = 2
+ StateCumulative = 3
+)
+
+type Stats struct {
+ State uint32
+
+ InitialPackages uint32
+ TotalPackages uint32
+ ProcessedPackages uint32
+ ProcessedInitialPackages uint32
+ Problems uint32
+ ActiveWorkers uint32
+ TotalWorkers uint32
+ PrintAnalyzerMeasurement func(*analysis.Analyzer, *Package, time.Duration)
+}
+
+type AnalysisMeasurementKey struct {
+ Analysis string
+ Pkg string
+}
+
+func (s *Stats) MeasureAnalyzer(analysis *analysis.Analyzer, pkg *Package, d time.Duration) {
+ if s.PrintAnalyzerMeasurement != nil {
+ s.PrintAnalyzerMeasurement(analysis, pkg, d)
+ }
+}