type GenScheme … func (g *GenScheme) Namers(c *generator.Context) namer.NameSystems { … } // We only want to call GenerateType() once. func (g *GenScheme) Filter(c *generator.Context, t *types.Type) bool { … } func (g *GenScheme) Imports(c *generator.Context) (imports []string) { … } func (g *GenScheme) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error { … } var globalsTemplate … var registryRegistration … var simpleRegistration …