gen

package
v1.1.10 Latest Latest
Warning

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

Go to latest
Published: Feb 17, 2025 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SnakeCase added in v1.1.8

func SnakeCase(s string) string

func ToLowerFirst added in v1.1.8

func ToLowerFirst(s string) string

Types

type DefaultFieldNamer

type DefaultFieldNamer struct{}

DefaultFieldsNamer implements trivial naming policy equivalent to encoding/json.

func (DefaultFieldNamer) GetJSONFieldName

func (DefaultFieldNamer) GetJSONFieldName(t reflect.Type, f reflect.StructField) string

type FieldNamer

type FieldNamer interface {
	GetJSONFieldName(t reflect.Type, f reflect.StructField) string
}

FieldNamer defines a policy for generating names for struct fields.

type Generator

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

Generator generates the requested marshaler/unmarshalers.

func NewGenerator

func NewGenerator(filename string) *Generator

NewGenerator initializes and returns a Generator.

func (*Generator) Add

func (g *Generator) Add(obj interface{})

Add requests to generate marshaler/unmarshalers and encoding/decoding funcs for the type of given object.

func (*Generator) AddModel

func (g *Generator) AddModel(obj interface{})

func (*Generator) DisallowUnknownFields

func (g *Generator) DisallowUnknownFields()

DisallowUnknownFields instructs not to skip unknown fields in json and return error.

func (*Generator) NoStdMarshalers

func (g *Generator) NoStdMarshalers()

NoStdMarshalers instructs not to generate standard MarshalJSON/UnmarshalJSON methods (only the custom interface).

func (*Generator) OmitEmpty

func (g *Generator) OmitEmpty()

OmitEmpty triggers `json=",omitempty"` behaviour by default.

func (*Generator) Run

func (g *Generator) Run(out io.Writer) error

Run runs the generator and outputs generated code to out.

func (*Generator) SetBuildTags

func (g *Generator) SetBuildTags(tags string)

SetBuildTags sets build tags for the output file.

func (*Generator) SetFieldNamer

func (g *Generator) SetFieldNamer(n FieldNamer)

SetFieldNamer sets field naming strategy.

func (*Generator) SetPkg

func (g *Generator) SetPkg(name, path string)

SetPkg sets the name and path of output package.

func (*Generator) SimpleBytes

func (g *Generator) SimpleBytes()

SimpleBytes triggers generate output bytes as slice byte

func (*Generator) SkipMemberNameUnescaping

func (g *Generator) SkipMemberNameUnescaping()

SkipMemberNameUnescaping instructs to skip member names unescaping to improve performance

func (*Generator) UseLowerCamelCase

func (g *Generator) UseLowerCamelCase()

UseLowerCamelCase sets lowerCamelCase field naming strategy.

func (*Generator) UseSnakeCase

func (g *Generator) UseSnakeCase()

UseSnakeCase sets snake_case field naming strategy.

type LowerCamelCaseFieldNamer

type LowerCamelCaseFieldNamer struct{}

LowerCamelCaseFieldNamer

func (LowerCamelCaseFieldNamer) GetJSONFieldName

type SnakeCaseFieldNamer

type SnakeCaseFieldNamer struct{}

SnakeCaseFieldNamer implements CamelCase to snake_case conversion for fields names.

func (SnakeCaseFieldNamer) GetJSONFieldName

func (SnakeCaseFieldNamer) GetJSONFieldName(t reflect.Type, f reflect.StructField) string

Jump to

Keyboard shortcuts

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