Documentation ¶
Index ¶
- func ToPublicName(name string) string
- func ToSnake(in string) string
- type File
- type FunctionName
- type FunctionNameList
- type Package
- func (p *Package) AddConstant(file, name string, value interface{})
- func (p *Package) AddFunction(file, str, name, def string)
- func (p *Package) AddHeader(file, header string)
- func (p *Package) AddImport(file, name string)
- func (p *Package) AddStruct(file, name, def string)
- func (p *Package) File(name string) (*File, bool)
- func (p *Package) Files() []string
- func (p *Package) HasFunction(file, str, name string) bool
- func (p *Package) HasImport(file, name string) bool
- func (p *Package) HasStruct(file, name string) bool
- func (p *Package) WriteFiles(targetDir string) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ToPublicName ¶
ToPublicName returns a go-idiomatic public name. The Avro spec specifies names must start with [A-Za-z_] and contain [A-Za-z0-9_]. The golang spec says valid identifiers start with [A-Za-z_] and contain [A-Za-z0-9], but the first character must be [A-Z] for the field to be public.
func ToSnake ¶
Make filenames snake-case, taken from https://gist.github.com/elwinar/14e1e897fdbe4d3432e1
Types ¶
type File ¶
type File struct {
// contains filtered or unexported fields
}
File represents a Go source file in the output package
func (*File) Functions ¶
func (f *File) Functions() []FunctionName
func (*File) WriteFile ¶
Write the contents of the file:
- imports (all in one block) - struct definitions (alphabetically) - functions (sorted alphabetically by struct to which they're attached, then unattached funcs) TODO: It'd be better to group funcs attached to a struct with the struct definition
type FunctionName ¶
type FunctionNameList ¶
type FunctionNameList []FunctionName
Implement the Sortable interface for FunctionNames
func (FunctionNameList) Len ¶
func (f FunctionNameList) Len() int
func (FunctionNameList) Less ¶
func (f FunctionNameList) Less(i, j int) bool
Sort functions by the struct to which they're attached first, then the name of the method itself. If the function isn't attached to a struct, put it at the bottom
func (FunctionNameList) Swap ¶
func (f FunctionNameList) Swap(i, j int)
type Package ¶
type Package struct {
// contains filtered or unexported fields
}
Represents the output package