gen

package
v0.50.0 Latest Latest
Warning

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

Go to latest
Published: Aug 24, 2021 License: MIT Imports: 15 Imported by: 0

Documentation

Overview

Package gen implements code generation from TL schema.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Funcs added in v0.19.0

func Funcs() template.FuncMap

Funcs returns functions which used in templates.

func Template

func Template() *template.Template

Template parses and returns vendored code generation templates.

Types

type FileSystem

type FileSystem interface {
	WriteFile(baseName string, source []byte) error
}

FileSystem represents a directory of generated package.

type GenerateFlags added in v0.50.0

type GenerateFlags struct {
	// Client enables client generation.
	Client bool
	// Registry enables type ID registry generation.
	Registry bool
	// Server enables experimental server generation.
	Server bool
	// Handlers enables update handler generation.
	Handlers bool
	// GetSet enables getters and setters generation.
	GetSet bool
	// Mapping enables mapping helpers generation.
	Mapping bool
	// Slices enables slice helpers generation.
	Slices bool
}

GenerateFlags is flags for optional generation.

func (*GenerateFlags) RegisterFlags added in v0.50.0

func (s *GenerateFlags) RegisterFlags(set *flag.FlagSet)

RegisterFlags registers GenerateFlags fields in given flag set.

type Generator

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

Generator generates go types from tl.Schema.

func NewGenerator

func NewGenerator(s *tl.Schema, genOpt GeneratorOptions) (*Generator, error)

NewGenerator initializes and returns new Generator from tl.Schema.

func (*Generator) WriteSource

func (g *Generator) WriteSource(fs FileSystem, pkgName string, t *template.Template) error

WriteSource writes generated definitions to fs.

type GeneratorOptions added in v0.50.0

type GeneratorOptions struct {
	// DocBaseURL is a documentation base URL.
	// If DocBaseURL is set, Generator will embed documentation references to generated code.
	//
	// If base is https://core.telegram.org, documentation content will be also
	// embedded.
	DocBaseURL string
	// DocLineLimit sets GoDoc comment line length limit.
	DocLineLimit int
	GenerateFlags
}

GeneratorOptions is a Generator options structure.

func (*GeneratorOptions) RegisterFlags added in v0.50.0

func (s *GeneratorOptions) RegisterFlags(set *flag.FlagSet)

RegisterFlags registers GeneratorOptions fields in given flag set.

Directories

Path Synopsis
Package td contains generated code from example schema and is used for codegen testing.
Package td contains generated code from example schema and is used for codegen testing.

Jump to

Keyboard shortcuts

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