Files
avo/printer/stubs.go
Michael McLoughlin 36984c7031 printer: output build tags in stubs file
Updates #3
2019-01-02 22:01:38 -08:00

34 lines
555 B
Go

package printer
import (
"github.com/mmcloughlin/avo"
"github.com/mmcloughlin/avo/internal/prnt"
)
type stubs struct {
cfg Config
prnt.Generator
}
func NewStubs(cfg Config) Printer {
return &stubs{cfg: cfg}
}
func (s *stubs) Print(f *avo.File) ([]byte, error) {
s.Comment(s.cfg.GeneratedWarning())
if len(f.Constraints) > 0 {
s.NL()
s.Printf(f.Constraints.GoString())
}
s.NL()
s.Printf("package %s\n", s.cfg.Pkg)
for _, fn := range f.Functions() {
s.NL()
s.Comment(fn.Doc...)
s.Printf("%s\n", fn.Stub())
}
return s.Result()
}