type VarGen … type varGen … func NewVarGen() VarGen { … } func (this *varGen) Next() string { … } func (this *varGen) Current() string { … } type plugin … func NewPlugin() *plugin { … } func (p *plugin) Name() string { … } func (p *plugin) Init(g *generator.Generator) { … } func value(typeName string, fieldType descriptor.FieldDescriptorProto_Type) string { … } func negative(fieldType descriptor.FieldDescriptorProto_Type) bool { … } func (p *plugin) getFuncName(goTypName string, field *descriptor.FieldDescriptorProto) string { … } func (p *plugin) getFuncCall(goTypName string, field *descriptor.FieldDescriptorProto) string { … } func (p *plugin) getCustomFuncCall(goTypName string) string { … } func (p *plugin) getEnumVal(field *descriptor.FieldDescriptorProto, goTyp string) string { … } func (p *plugin) GenerateField(file *generator.FileDescriptor, message *generator.Descriptor, field *descriptor.FieldDescriptorProto) { … } func (p *plugin) hasLoop(pkg string, field *descriptor.FieldDescriptorProto, visited []*generator.Descriptor, excludes []*generator.Descriptor) *generator.Descriptor { … } func (p *plugin) loops(pkg string, field *descriptor.FieldDescriptorProto, message *generator.Descriptor) int { … } func (p *plugin) Generate(file *generator.FileDescriptor) { … } func init() { … }