gcg

package module
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2023 License: Apache-2.0 Imports: 15 Imported by: 5

README

gcg

golang code generator

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FileExist

func FileExist(path string) (ok bool)

func FileRender

func FileRender(path string, cleanBeforeWrite bool) (w io.WriteCloser)

func ProjectGoGenerateHook

func ProjectGoGenerateHook(ctx context.Context, commandAndArgs ...string) (err error)

Types

type ArrayBuilder

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

func Array

func Array(elm Code) *ArrayBuilder

func Bytes

func Bytes() *ArrayBuilder

func Int64s

func Int64s() *ArrayBuilder

func Ints

func Ints() *ArrayBuilder

func Strings

func Strings() *ArrayBuilder

func (*ArrayBuilder) MapToMakeArray

func (b *ArrayBuilder) MapToMakeArray(capacity int) (code Code)

func (*ArrayBuilder) MapToMakeSlice

func (b *ArrayBuilder) MapToMakeSlice(length int, capacity int) (code Code)

func (*ArrayBuilder) MapToType

func (b *ArrayBuilder) MapToType() (code Code)

type CaseElement

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

type ChanBuilder

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

func Chan

func Chan(elm Code) *ChanBuilder

func (*ChanBuilder) MapToConsumeType

func (b *ChanBuilder) MapToConsumeType() (code Code)

func (*ChanBuilder) MapToMake

func (b *ChanBuilder) MapToMake(length int) (code Code)

func (*ChanBuilder) MapToSendType

func (b *ChanBuilder) MapToSendType() (code Code)

func (*ChanBuilder) MapToType

func (b *ChanBuilder) MapToType() (code Code)

type Code

type Code interface {
	Render
	// contains filtered or unexported methods
}

func Break

func Break() (code Code)

func Comments

func Comments(texts ...string) (code Code)

func Continue

func Continue() (code Code)

func Defer

func Defer() (code Code)

func Fallthrough

func Fallthrough() (code Code)

func For

func For(init Code, cond Code, post Code, block Code) (code Code)

func ForCond

func ForCond(cond Code, block Code) (code Code)

func ForDead

func ForDead(block Code) (code Code)

func ForRangeArray

func ForRangeArray(ident Code, indexIdent string, elementIdent string, block Code) (code Code)

func Go

func Go() (code Code)

func Goto

func Goto() (code Code)

func Keyword

func Keyword(ident string) (code Code)

func Literal

func Literal(v interface{}) (code Code)

func LiteralByte

func LiteralByte(v byte) (code Code)

func LiteralRune

func LiteralRune(v rune) (code Code)

func Return

func Return() (code Code)

func Type

func Type(ident string, element Code, comments ...string) (code Code)

type Codes

type Codes []Code

func (Codes) Render

func (c Codes) Render(w io.Writer) (err error)

type ConstantsBuilder

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

func Constants

func Constants() (c *ConstantsBuilder)

func (*ConstantsBuilder) Add

func (c *ConstantsBuilder) Add(ident string, lit interface{})

func (*ConstantsBuilder) Build

func (c *ConstantsBuilder) Build() (code Code)

type File

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

func NewFile

func NewFile(packageName string) (f *File)

func NewFileWithoutNote added in v1.0.4

func NewFileWithoutNote(packageName string) (f *File)

func (*File) AddCode

func (f *File) AddCode(code Code)

func (*File) AddImport

func (f *File) AddImport(pkg *Package)

func (*File) FileComments

func (f *File) FileComments(comments ...string)

func (*File) Render

func (f *File) Render(w io.Writer) (err error)

type Folder

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

func (*Folder) AddFile

func (f *Folder) AddFile(filename string, file *File)

func (*Folder) AddFolder

func (f *Folder) AddFolder(name string) (v *Folder)

func (*Folder) AddResourceFile

func (f *Folder) AddResourceFile(filename string, content []byte) (err error)

func (*Folder) Write

func (f *Folder) Write() (err error)

type FuncBuilder

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

func Func

func Func() (builder *FuncBuilder)

func (*FuncBuilder) AddParam

func (b *FuncBuilder) AddParam(name string, typ Code)

func (*FuncBuilder) AddResult

func (b *FuncBuilder) AddResult(name string, typ Code)

func (*FuncBuilder) Body

func (b *FuncBuilder) Body(body Code)

func (*FuncBuilder) Build

func (b *FuncBuilder) Build() (code Code)

func (*FuncBuilder) Comments

func (b *FuncBuilder) Comments(comments ...string)

func (*FuncBuilder) Name

func (b *FuncBuilder) Name(name string)

func (*FuncBuilder) Receiver

func (b *FuncBuilder) Receiver(ident string, typ Code)

type IfBuilder

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

func If

func If(expression Code, block Code) *IfBuilder

func (*IfBuilder) Build

func (b *IfBuilder) Build() (code Code)

func (*IfBuilder) Else

func (b *IfBuilder) Else(block Code)

func (*IfBuilder) ElseIf

func (b *IfBuilder) ElseIf(expression Code, block Code)

type IfElement

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

type InterfaceBuilder

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

func Interface

func Interface() *InterfaceBuilder

func (*InterfaceBuilder) AddFn

func (b *InterfaceBuilder) AddFn(fn *InterfaceFnBuilder, comments ...string)

func (*InterfaceBuilder) Build

func (b *InterfaceBuilder) Build() (code Code)

func (*InterfaceBuilder) Extend

func (b *InterfaceBuilder) Extend(code Code)

type InterfaceFnBuilder

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

func InterfaceFn

func InterfaceFn(name string) *InterfaceFnBuilder

func (*InterfaceFnBuilder) AddParam

func (b *InterfaceFnBuilder) AddParam(name string, typ Code)

func (*InterfaceFnBuilder) AddResult

func (b *InterfaceFnBuilder) AddResult(name string, typ Code)

func (*InterfaceFnBuilder) Build

func (b *InterfaceFnBuilder) Build(comments ...string) (code Code)

type MapBuilder

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

func Map

func Map(key Code, val Code) *MapBuilder

func (*MapBuilder) MapToMake

func (b *MapBuilder) MapToMake() (code Code)

func (*MapBuilder) MapToType

func (b *MapBuilder) MapToType() (code Code)

type Module

type Module struct {
	Name      string
	Path      string
	GoVersion string
	Requires  []Require
}

func (Module) String

func (mod Module) String() (s string)

type Package

type Package struct {
	Name  string
	Alias string
	Path  string
}

func AtomicPackage

func AtomicPackage() *Package

func BytesPackage

func BytesPackage() *Package

func FmtPackage

func FmtPackage() *Package

func IoPackage

func IoPackage() *Package

func IoUtilPackage

func IoUtilPackage() *Package

func JsonPackage

func JsonPackage() *Package

func NewPackage

func NewPackage(pkgPath string) (v *Package)

func NewPackageWithAlias

func NewPackageWithAlias(pkgPath string, alias string) (v *Package)

func StrconvPackage

func StrconvPackage() *Package

func StringsPackage

func StringsPackage() *Package

func SyncPackage

func SyncPackage() *Package

type Packages

type Packages []*Package

func NewPackages

func NewPackages() Packages

func (*Packages) Add

func (p *Packages) Add(v *Package) *Packages

func (Packages) Empty

func (p Packages) Empty() (v bool)

func (Packages) MapToCode

func (p Packages) MapToCode() (code Code)

func (*Packages) Merge

func (p *Packages) Merge(x Packages)

type Project

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

func NewProject

func NewProject(rootDir string, opts ...ProjectOption) (p *Project, err error)

func (*Project) AddFile

func (p *Project) AddFile(filename string, file *File)

func (*Project) AddFolder

func (p *Project) AddFolder(name string) (v *Folder)

func (*Project) AddRequire

func (p *Project) AddRequire(v Require)

func (*Project) AddResourceFile

func (p *Project) AddResourceFile(filename string, content []byte) (err error)

func (*Project) Render

func (p *Project) Render() (err error)

func (*Project) SetGoVersion

func (p *Project) SetGoVersion(v string)

type ProjectHook

type ProjectHook func(ctx context.Context, commandAndArgs ...string) error

type ProjectOption

type ProjectOption func(*ProjectOptions) error

func ProjectGoProxy

func ProjectGoProxy(v string) ProjectOption

func ProjectRemoveBeforeRender

func ProjectRemoveBeforeRender(ok bool) ProjectOption

func ProjectRenderHook

func ProjectRenderHook(v ProjectHook, commandAndArgs ...string) ProjectOption

type ProjectOptions

type ProjectOptions struct {
	RemoveBeforeRender bool
	GoProxy            string
	Hooks              []*projectHookInstance
}

type Render

type Render interface {
	Render(w io.Writer) (err error)
}

type Require

type Require struct {
	Name           string
	Version        string
	Replace        string
	ReplaceVersion string
	Indirect       bool
}

type SelectBuilder

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

func Select

func Select() *SelectBuilder

func (*SelectBuilder) Build

func (b *SelectBuilder) Build() (code Code)

func (*SelectBuilder) Case

func (b *SelectBuilder) Case(expression Code, block Code)

func (*SelectBuilder) Default

func (b *SelectBuilder) Default(block Code)

type Statement

type Statement []Code

func And

func And() (stmt *Statement)

func Byte

func Byte() (stmt *Statement)

func Call

func Call(fn Code, params ...Code) (stmt *Statement)

func CallErrorf

func CallErrorf(formatter string, v ...Code) (stmt *Statement)

func CallStringsContains

func CallStringsContains(s Code, sub Code) (stmt *Statement)

func CallStringsToLower

func CallStringsToLower(s Code) (stmt *Statement)

func CallStringsToUpper

func CallStringsToUpper(s Code) (stmt *Statement)

func CallTrimSpace

func CallTrimSpace(v Code) (stmt *Statement)

func Colon

func Colon() (stmt *Statement)

func ColonEqual

func ColonEqual() (stmt *Statement)

func Constant

func Constant(ident string, lit interface{}) (stmt *Statement)

func Context

func Context() (stmt *Statement)

func Dot

func Dot() (stmt *Statement)

func Equal

func Equal() (stmt *Statement)

func Error

func Error() (stmt *Statement)

func False

func False() (stmt *Statement)

func Float32

func Float32() (stmt *Statement)

func Float64

func Float64() (stmt *Statement)

func GT

func GT() (stmt *Statement)

func GTE

func GTE() (stmt *Statement)

func Ident

func Ident(name string) (stmt *Statement)

func Int

func Int() (stmt *Statement)

func Int64

func Int64() (stmt *Statement)

func LT

func LT() (stmt *Statement)

func LTE

func LTE() (stmt *Statement)

func Line

func Line() (stmt *Statement)

func QualifiedIdent

func QualifiedIdent(pkg *Package, name string) (stmt *Statement)

func Space

func Space() (stmt *Statement)

func Star

func Star() (stmt *Statement)

func Statements

func Statements() *Statement

func String

func String() (stmt *Statement)

func Symbol

func Symbol(s string) (stmt *Statement)

func Tab

func Tab() (stmt *Statement)

func Tabs

func Tabs(n int) (stmt *Statement)

func Token

func Token(name string, ps ...*Package) (stmt *Statement)

func True

func True() (stmt *Statement)

func UInt

func UInt() (stmt *Statement)

func UInt64

func UInt64() (stmt *Statement)

func (*Statement) Add

func (s *Statement) Add(code ...Code) *Statement

func (*Statement) And

func (s *Statement) And() *Statement

func (*Statement) Break

func (s *Statement) Break() *Statement

func (*Statement) Call

func (s *Statement) Call(fn Code, params ...Code) *Statement

func (Statement) Codes

func (s Statement) Codes() (codes []Code)

func (*Statement) Colon

func (s *Statement) Colon() *Statement

func (*Statement) ColonEqual

func (s *Statement) ColonEqual() *Statement

func (*Statement) Comments

func (s *Statement) Comments(texts ...string) *Statement

func (*Statement) Constant

func (s *Statement) Constant(ident string, lit interface{}) *Statement

func (*Statement) Continue

func (s *Statement) Continue() *Statement

func (*Statement) Defer

func (s *Statement) Defer() *Statement

func (*Statement) Dot

func (s *Statement) Dot() *Statement

func (*Statement) Equal

func (s *Statement) Equal() *Statement

func (*Statement) Fallthrough

func (s *Statement) Fallthrough() *Statement

func (*Statement) GT

func (s *Statement) GT() *Statement

func (*Statement) GTE

func (s *Statement) GTE() *Statement

func (*Statement) Go

func (s *Statement) Go() *Statement

func (*Statement) Goto

func (s *Statement) Goto() *Statement

func (*Statement) Ident

func (s *Statement) Ident(name string) *Statement

func (*Statement) Keyword

func (s *Statement) Keyword(ident string) *Statement

func (*Statement) LT

func (s *Statement) LT() *Statement

func (*Statement) LTE

func (s *Statement) LTE() *Statement

func (*Statement) Line

func (s *Statement) Line() *Statement

func (*Statement) Literal

func (s *Statement) Literal(v interface{}) *Statement

func (*Statement) LiteralByte

func (s *Statement) LiteralByte(v byte) *Statement

func (*Statement) LiteralRune

func (s *Statement) LiteralRune(v rune) *Statement

func (*Statement) QualifiedIdent

func (s *Statement) QualifiedIdent(pkg *Package, name string) *Statement

func (Statement) Render

func (s Statement) Render(w io.Writer) (err error)

func (*Statement) Return

func (s *Statement) Return() *Statement

func (*Statement) Space

func (s *Statement) Space() *Statement

func (*Statement) Star

func (s *Statement) Star() *Statement

func (*Statement) Symbol

func (s *Statement) Symbol(v string) *Statement

func (*Statement) Tab

func (s *Statement) Tab() *Statement

func (*Statement) Tabs

func (s *Statement) Tabs(n int) *Statement

func (*Statement) Token

func (s *Statement) Token(name string, ps ...*Package) *Statement

type StatementGroup

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

func Group

func Group(open string, close string, separator string) *StatementGroup

func (*StatementGroup) Add

func (s *StatementGroup) Add(code Code) *StatementGroup

func (StatementGroup) Render

func (s StatementGroup) Render(w io.Writer) (err error)

type StructBuilder

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

func Struct

func Struct() *StructBuilder

func (*StructBuilder) AddField

func (s *StructBuilder) AddField(field *StructFieldBuilder)

func (*StructBuilder) AddMethod

func (s *StructBuilder) AddMethod(fn *FuncBuilder)

func (*StructBuilder) Build

func (s *StructBuilder) Build() (code Code)

type StructFieldBuilder

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

func StructField

func StructField(name string) *StructFieldBuilder

func (*StructFieldBuilder) Build

func (b *StructFieldBuilder) Build() (code Code)

func (*StructFieldBuilder) Comments

func (b *StructFieldBuilder) Comments(comments ...string)

func (*StructFieldBuilder) Tag

func (b *StructFieldBuilder) Tag(k string, v string)

func (*StructFieldBuilder) Type

func (b *StructFieldBuilder) Type(code Code)

type SwitchBuilder

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

func Switch

func Switch() *SwitchBuilder

func (*SwitchBuilder) Build

func (b *SwitchBuilder) Build() (code Code)

func (*SwitchBuilder) Case

func (b *SwitchBuilder) Case(expression Code, block Code)

func (*SwitchBuilder) Default

func (b *SwitchBuilder) Default(block Code)

func (*SwitchBuilder) Expression

func (b *SwitchBuilder) Expression(code Code)

type VarBuilder

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

func Var

func Var(name string, typ Code) *VarBuilder

func (*VarBuilder) Build

func (b *VarBuilder) Build() (code Code)

func (*VarBuilder) BuildVarsElement

func (b *VarBuilder) BuildVarsElement() (code Code)

func (*VarBuilder) Comments

func (b *VarBuilder) Comments(text ...string)

func (*VarBuilder) Value

func (b *VarBuilder) Value(v Code)

type VarsBuilder

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

func Vars

func Vars() *VarsBuilder

func (*VarsBuilder) Add

func (b *VarsBuilder) Add(v *VarBuilder)

func (*VarsBuilder) Build

func (b *VarsBuilder) Build() (code Code)

Jump to

Keyboard shortcuts

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