type plugin … func NewPlugin() *plugin { … } func (p *plugin) Name() string { … } func (p *plugin) Init(g *generator.Generator) { … } func (p *plugin) Generate(file *generator.FileDescriptor) { … } func (p *plugin) GenerateImports(*generator.FileDescriptor) { … } func init() { … }