type Printer … type Builder … type Config … // NewDefaultConfig produces a config with Name "avo". // The package name is guessed from the current directory. func NewDefaultConfig() Config { … } // NewArgvConfig constructs a Config from os.Args. // The package name is guessed from the current directory. func NewArgvConfig() Config { … } // NewGoRunConfig produces a Config for a generator that's expected to be // executed via "go run ...". func NewGoRunConfig() Config { … } // GeneratedBy returns a description of the code generator. func (c Config) GeneratedBy() string { … } // GeneratedWarning returns text for a code generation warning. Conforms to https://golang.org/s/generatedcode. func (c Config) GeneratedWarning() string { … } // mainfile attempts to determine the file path of the main function by // inspecting the stack. Returns empty string on failure. func mainfile() string { … } // pkg guesses the name of the package from the working directory. func pkg() string { … }