code: func (g *genProtoIDL) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
  	sw := generator.NewSnippetWriter(w, c, "$", "$")
  	b := bodyGen{
  		locator: &protobufLocator{
  			namer:    c.Namers["proto"].(ProtobufFromGoNamer),
  			tracker:  g.imports,
  			universe: c.Universe,
  
  			localGoPackage: g.localGoPackage.Package,
  		},
  		localPackage: g.localPackage,
  
  		omitGogo:       g.omitGogo,
  		omitFieldTypes: g.omitFieldTypes,
  
  		t: t,
  	}
  	switch t.Kind {
  	case types.Alias:
  		return b.doAlias(sw)
  	case types.Struct:
  		return b.doStruct(sw)
  	default:
  		return b.unknown(sw)
  	}
  }
docs: // GenerateType makes the body of a file implementing a set for type t.