generator

package
v10.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2023 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Utility methods for managing and writing generated code

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetNamer

func SetNamer(n Namer)

SetNamer sets the generator's global namer

func ToPublicName

func ToPublicName(name string) string

ToPublicName returns a go-idiomatic public name by using the package's configured namer.

func ToPublicSimpleName

func ToPublicSimpleName(name string) string

ToPublicSimpleName 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

func ToSnake(in string) string

ToSnake makes filenames snake-case, taken from https://gist.github.com/elwinar/14e1e897fdbe4d3432e1

Types

type DefaultNamer

type DefaultNamer struct {
}

DefaultNamer implements the Namer interface with the backwards-compatible public name generator function.

func (*DefaultNamer) ToPublicName

func (d *DefaultNamer) ToPublicName(name string) string

ToPublicName implements the backwards-compatible name converter in DefaultNamer.

type Namer

type Namer interface {
	// 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.
	ToPublicName(name string) string
}

Namer is the interface defining a function for converting a name to a go-idiomatic public name.

type NamespaceNamer

type NamespaceNamer struct {
	// contains filtered or unexported fields
}

NamespaceNamer is like DefaultNamer but taking into account special tokens so namespaced names can be generated safely.

func NewNamespaceNamer

func NewNamespaceNamer(shortNames bool) *NamespaceNamer

NewNamespaceNamer returns a namespace-aware namer.

func (*NamespaceNamer) ToPublicName

func (n *NamespaceNamer) ToPublicName(name string) string

ToPublicName implements the go-idiomatic public name as in DefaultNamer's struct, but with additional treatment applied in order to remove possible invalid tokens from it. Final string is then converted to camel-case.

type Package

type Package struct {
	// contains filtered or unexported fields
}

Package represents the output package

func NewPackage

func NewPackage(name, header string) *Package

func (*Package) AddFile

func (p *Package) AddFile(name string, body string)

func (*Package) Files

func (p *Package) Files() []string

func (*Package) HasFile

func (p *Package) HasFile(name string) bool

func (*Package) WriteFiles

func (p *Package) WriteFiles(targetDir string) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL