You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.7 KiB
47 lines
1.7 KiB
package generator |
|
|
|
import ( |
|
"io" |
|
|
|
"go-common/app/tool/gengo/namer" |
|
"go-common/app/tool/gengo/types" |
|
) |
|
|
|
// consts |
|
const ( |
|
GolangFileType = "golang" |
|
) |
|
|
|
// DefaultGen implements a do-nothing Generator. |
|
// |
|
// It can be used to implement static content files. |
|
type DefaultGen struct { |
|
// OptionalName, if present, will be used for the generator's name, and |
|
// the filename (with ".go" appended). |
|
OptionalName string |
|
|
|
// OptionalBody, if present, will be used as the return from the "Init" |
|
// method. This causes it to be static content for the entire file if |
|
// no other generator touches the file. |
|
OptionalBody []byte |
|
} |
|
|
|
func (d DefaultGen) Name() string { return d.OptionalName } |
|
func (d DefaultGen) Filter(*Context, *types.Type) bool { return true } |
|
func (d DefaultGen) Namers(*Context) namer.NameSystems { return nil } |
|
func (d DefaultGen) Imports(*Context) []string { return []string{} } |
|
func (d DefaultGen) PackageVars(*Context) []string { return []string{} } |
|
func (d DefaultGen) PackageConsts(*Context) []string { return []string{} } |
|
func (d DefaultGen) GenerateType(*Context, *types.Type, io.Writer) error { return nil } |
|
func (d DefaultGen) Filename() string { return d.OptionalName + ".go" } |
|
func (d DefaultGen) FileType() string { return GolangFileType } |
|
func (d DefaultGen) Finalize(*Context, io.Writer) error { return nil } |
|
|
|
func (d DefaultGen) Init(c *Context, w io.Writer) error { |
|
_, err := w.Write(d.OptionalBody) |
|
return err |
|
} |
|
|
|
var ( |
|
_ = Generator(DefaultGen{}) |
|
)
|
|
|