@@ -28,16 +28,17 @@ import (
2828// Note that as opposed to most structs in this codebase, we do not omitempty for
2929// the fields for JSON or YAML.
3030type Stats struct {
31- NumFiles int `json:"num_files" yaml:"num_files"`
32- NumPackages int `json:"num_packages" yaml:"num_packages"`
33- NumFilesWithSyntaxErrors int `json:"num_files_with_syntax_errors" yaml:"num_files_with_syntax_errors"`
34- NumMessages int `json:"num_messages" yaml:"num_messages"`
35- NumFields int `json:"num_fields" yaml:"num_fields"`
36- NumEnums int `json:"num_enums" yaml:"num_enums"`
37- NumEnumValues int `json:"num_enum_values" yaml:"num_enum_values"`
38- NumExtensions int `json:"num_extensions" yaml:"num_extensions"`
39- NumServices int `json:"num_services" yaml:"num_services"`
40- NumMethods int `json:"num_methods" yaml:"num_methods"`
31+ Files int `json:"files" yaml:"files"`
32+ Types int `json:"types" yaml:"types"`
33+ Packages int `json:"packages" yaml:"packages"`
34+ Messages int `json:"messages" yaml:"messages"`
35+ Fields int `json:"fields" yaml:"fields"`
36+ Enums int `json:"enums" yaml:"enums"`
37+ EnumValues int `json:"evalues" yaml:"evalues"`
38+ Services int `json:"services" yaml:"services"`
39+ RPCs int `json:"rpcs" yaml:"rpcs"`
40+ Extensions int `json:"extensions" yaml:"extensions"`
41+ FilesWithSyntaxErrors int `json:"-" yaml:"-"`
4142}
4243
4344// FileWalker goes through all .proto files for GetStats.
@@ -75,15 +76,15 @@ func GetStats(ctx context.Context, fileWalker FileWalker) (*Stats, error) {
7576 if err != nil {
7677 // There was a syntax error, but we still have a partial
7778 // AST we can examine.
78- statsBuilder .NumFilesWithSyntaxErrors ++
79+ statsBuilder .FilesWithSyntaxErrors ++
7980 }
8081 examineFile (statsBuilder , astRoot )
8182 return nil
8283 },
8384 ); err != nil {
8485 return nil , err
8586 }
86- statsBuilder .NumPackages = len (statsBuilder .packages )
87+ statsBuilder .Packages = len (statsBuilder .packages )
8788 return statsBuilder .Stats , nil
8889}
8990
@@ -93,16 +94,17 @@ func GetStats(ctx context.Context, fileWalker FileWalker) (*Stats, error) {
9394func MergeStats (statsSlice ... * Stats ) * Stats {
9495 resultStats := & Stats {}
9596 for _ , stats := range statsSlice {
96- resultStats .NumFiles += stats .NumFiles
97- resultStats .NumPackages += stats .NumPackages
98- resultStats .NumFilesWithSyntaxErrors += stats .NumFilesWithSyntaxErrors
99- resultStats .NumMessages += stats .NumMessages
100- resultStats .NumFields += stats .NumFields
101- resultStats .NumEnums += stats .NumEnums
102- resultStats .NumEnumValues += stats .NumEnumValues
103- resultStats .NumExtensions += stats .NumExtensions
104- resultStats .NumServices += stats .NumServices
105- resultStats .NumMethods += stats .NumMethods
97+ resultStats .Files += stats .Files
98+ resultStats .FilesWithSyntaxErrors += stats .FilesWithSyntaxErrors
99+ resultStats .Packages += stats .Packages
100+ resultStats .Types += stats .Types
101+ resultStats .Messages += stats .Messages
102+ resultStats .Fields += stats .Fields
103+ resultStats .Enums += stats .Enums
104+ resultStats .EnumValues += stats .EnumValues
105+ resultStats .Services += stats .Services
106+ resultStats .RPCs += stats .RPCs
107+ resultStats .Extensions += stats .Extensions
106108 }
107109 return resultStats
108110}
@@ -121,7 +123,7 @@ func newStatsBuilder() *statsBuilder {
121123}
122124
123125func examineFile (statsBuilder * statsBuilder , fileNode * ast.FileNode ) {
124- statsBuilder .NumFiles ++
126+ statsBuilder .Files ++
125127 for _ , decl := range fileNode .Decls {
126128 switch decl := decl .(type ) {
127129 case * ast.PackageNode :
@@ -133,33 +135,35 @@ func examineFile(statsBuilder *statsBuilder, fileNode *ast.FileNode) {
133135 case * ast.ExtendNode :
134136 examineExtend (statsBuilder , decl )
135137 case * ast.ServiceNode :
136- statsBuilder .NumServices ++
138+ statsBuilder .Services ++
137139 for _ , decl := range decl .Decls {
138140 _ , ok := decl .(* ast.RPCNode )
139141 if ok {
140- statsBuilder .NumMethods ++
142+ statsBuilder .RPCs ++
143+ statsBuilder .Types ++
141144 }
142145 }
143146 }
144147 }
145148}
146149
147150func examineMessage (statsBuilder * statsBuilder , messageBody * ast.MessageBody ) {
148- statsBuilder .NumMessages ++
151+ statsBuilder .Messages ++
152+ statsBuilder .Types ++
149153 for _ , decl := range messageBody .Decls {
150154 switch decl := decl .(type ) {
151155 case * ast.FieldNode , * ast.MapFieldNode :
152- statsBuilder .NumFields ++
156+ statsBuilder .Fields ++
153157 case * ast.GroupNode :
154- statsBuilder .NumFields ++
158+ statsBuilder .Fields ++
155159 examineMessage (statsBuilder , & decl .MessageBody )
156160 case * ast.OneofNode :
157161 for _ , ooDecl := range decl .Decls {
158162 switch ooDecl := ooDecl .(type ) {
159163 case * ast.FieldNode :
160- statsBuilder .NumFields ++
164+ statsBuilder .Fields ++
161165 case * ast.GroupNode :
162- statsBuilder .NumFields ++
166+ statsBuilder .Fields ++
163167 examineMessage (statsBuilder , & ooDecl .MessageBody )
164168 }
165169 }
@@ -174,11 +178,12 @@ func examineMessage(statsBuilder *statsBuilder, messageBody *ast.MessageBody) {
174178}
175179
176180func examineEnum (statsBuilder * statsBuilder , enumNode * ast.EnumNode ) {
177- statsBuilder .NumEnums ++
181+ statsBuilder .Enums ++
182+ statsBuilder .Types ++
178183 for _ , decl := range enumNode .Decls {
179184 _ , ok := decl .(* ast.EnumValueNode )
180185 if ok {
181- statsBuilder .NumEnumValues ++
186+ statsBuilder .EnumValues ++
182187 }
183188 }
184189}
@@ -187,9 +192,9 @@ func examineExtend(statsBuilder *statsBuilder, extendNode *ast.ExtendNode) {
187192 for _ , decl := range extendNode .Decls {
188193 switch decl := decl .(type ) {
189194 case * ast.FieldNode :
190- statsBuilder .NumExtensions ++
195+ statsBuilder .Extensions ++
191196 case * ast.GroupNode :
192- statsBuilder .NumExtensions ++
197+ statsBuilder .Extensions ++
193198 examineMessage (statsBuilder , & decl .MessageBody )
194199 }
195200 }
0 commit comments