MCPcopy
hub / github.com/davyxu/tabtoy / Run

Method Run

v2/printer/csharp.go:383–490  ·  view source on GitHub ↗
(g *Globals)

Source from the content-addressed store, hash-verified

381}
382
383func (self *csharpPrinter) Run(g *Globals) *Stream {
384
385 tpl, err := template.New("csharp").Parse(csharpTemplate)
386 if err != nil {
387 log.Errorln(err)
388 return nil
389 }
390
391 var m csharpFileModel
392
393 if g.PackageName != "" {
394 m.Namespace = g.PackageName
395 } else {
396 m.Namespace = g.FileDescriptor.Pragma.GetString("Package")
397 }
398
399 m.ToolVersion = g.Version
400 m.GenSerializeCode = g.GenCSSerailizeCode
401
402 // combinestruct的全局索引
403 for _, ti := range g.GlobalIndexes {
404
405 // 索引也限制
406 if !ti.Index.Parent.File.MatchTag(".cs") {
407 continue
408 }
409
410 m.Indexes = append(m.Indexes, indexField{TableIndex: ti})
411 }
412
413 // 遍历所有类型
414 for _, d := range g.FileDescriptor.Descriptors {
415
416 // 这给被限制输出
417 if !d.File.MatchTag(".cs") {
418 log.Infof("%s: %s", i18n.String(i18n.Printer_IgnoredByOutputTag), d.Name)
419 continue
420 }
421
422 var sm structModel
423 sm.Descriptor = d
424
425 switch d.Kind {
426 case model.DescriptorKind_Struct:
427 m.Classes = append(m.Classes, &sm)
428 case model.DescriptorKind_Enum:
429 m.Enums = append(m.Enums, &sm)
430 }
431
432 // 遍历字段
433 for _, fd := range d.Fields {
434
435 // 对CombineStruct的XXDefine对应的字段
436 if d.Usage == model.DescriptorUsage_CombineStruct {
437
438 // 这个字段被限制输出
439 if fd.Complex != nil && !fd.Complex.File.MatchTag(".cs") {
440 continue

Callers

nothing calls this directly

Calls 6

BufferMethod · 0.95
StringFunction · 0.92
NewStreamFunction · 0.85
MatchTagMethod · 0.80
BytesMethod · 0.80
ParseMethod · 0.45

Tested by

no test coverage detected