options

package
v0.9.16 Latest Latest
Warning

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

Go to latest
Published: May 17, 2022 License: MIT Imports: 1 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type HeaderOption

type HeaderOption struct {
	// Exact row number of column name definition at a worksheet.
	// Default: 1.
	Namerow int32
	// Exact row number of column type definition at a worksheet.
	// Default: 2.
	Typerow int32
	// Exact row number of column note at a worksheet.
	// Default: 3.
	Noterow int32
	// Start row number of data at a worksheet.
	// Default: 4.
	Datarow int32

	// The line number of column name definition in a cell.
	// Value 0 means the whole cell.
	// Default: 0.
	Nameline int32
	// The line number of column type definition in a cell.
	// Value 0 means the whole cell.
	// Default: 0.
	Typeline int32
}

type InputOption

type InputOption struct {
	// Only for protogen: input file formats.
	// Note: recognize all formats (Excel, CSV, and XML) if not set (value is nil).
	// Default: nil.
	Formats []format.Format
	// The paths used to search for dependencies that are referenced in import
	// statements in proto source files. If no import paths are provided then
	// "." (current directory) is assumed to be the only import path.
	// Default: nil.
	ImportPaths []string `yaml:"importPaths"`
	// The files in "ImportPaths" used to search for dependencies that are referenced in import
	// statements in proto source files.
	// Default: nil.
	ImportFiles []string `yaml:"importFiles"`
	// The files to be parsed to generate configurations.
	// Default: nil.
	ProtoFiles []string `yaml:"protoFiles"`
	// - For protogen, specify only these subdirs (relative to input dir) to be processed.
	// - For confgen, specify only these subdirs (relative to workbook name option in .proto file).
	Subdirs []string
	// - For protogen, rewrite subdir path (relative to input dir).
	// - For confgen, rewrite subdir path (relative to workbook name option in .proto file).
	//
	// Default: nil.
	SubdirRewrites map[string]string `yaml:"subdirRewrites"`
	// Only for protogen: follow the symbolic links when traversing directories recursively.
	// WARN: be careful to use this option, it may lead to infinite loop.
	// Default: false.
	FollowSymlink bool `yaml:"followSymlink"`
}

type Option

type Option func(*Options)

Option is the functional option type.

func Header(o *HeaderOption) Option

Header sets HeaderOption.

func Input

func Input(o *InputOption) Option

Input sets InputOption.

func LocationName

func LocationName(o string) Option

LocationName sets LocationName.

func LogLevel

func LogLevel(level string) Option

LogLevel sets LogLevel.

func Output

func Output(o *OutputOption) Option

Output sets OutputOption.

func Workbook

func Workbook(wb string) Option

Workbook sets workbook filename.

func Worksheet

func Worksheet(ws string) Option

Worksheet sets worksheet name.

type Options

type Options struct {
	// Location represents the collection of time offsets in use in a geographical area.
	// Default: "Asia/Shanghai".
	LocationName string `yaml:"locationName"`
	// Log level: debug, info, warn, error. Default: "info".
	LogLevel string        `yaml:"logLevel"`
	Header   *HeaderOption // Header options of worksheet.
	Input    *InputOption  // Input options.
	Output   *OutputOption // Output options.

	Workbook  string // Workbook filename. Default: "".
	Worksheet string // Worksheet name. Default: "".
}

Options is the wrapper of tableau params. Options follow the design of Functional Options (https://github.com/tmrts/go-patterns/blob/master/idiom/functional-options.md).

func NewDefault added in v0.9.7

func NewDefault() *Options

NewDefault returns a default Options.

func ParseOptions

func ParseOptions(setters ...Option) *Options

ParseOptions parses functional options and merge them to default Options.

type OutputOption

type OutputOption struct {
	// Only for protogen: specify subdir for generated proto files in output dir.
	// Default: "".
	ProtoSubdir string `yaml:"protoSubdir"`
	// Only for confgen: specify subdir for generated configuration files in output dir.
	// Default: "".
	ConfSubdir string `yaml:"confSubdir"`
	// Only for protogen: dir separator `/` or `\`  in filename is replaced by "__".
	// Default: true.
	ProtoFilenameWithSubdirPrefix bool `yaml:"protoFilenameWithSubdirPrefix"`
	// Only for protogen: append the suffix to filename.
	// Default: "".
	ProtoFilenameSuffix string `yaml:"protoFilenameSuffix"`
	// Only for confgen: output file formats. It will output all formats
	// (JSON, Text, and Wire) if not set.
	// Default: nil.
	Formats []format.Format
	// Only for confgen: output pretty format, with multiline and indent.
	// Default: true.
	Pretty bool
	// EmitUnpopulated specifies whether to emit unpopulated fields. It does not
	// emit unpopulated oneof fields or unpopulated extension fields.
	// The JSON value emitted for unpopulated fields are as follows:
	//  ╔═══════╤════════════════════════════╗
	//  ║ JSON  │ Protobuf field             ║
	//  ╠═══════╪════════════════════════════╣
	//  ║ false │ proto3 boolean fields      ║
	//  ║ 0     │ proto3 numeric fields      ║
	//  ║ ""    │ proto3 string/bytes fields ║
	//  ║ null  │ proto2 scalar fields       ║
	//  ║ null  │ message fields             ║
	//  ║ []    │ list fields                ║
	//  ║ {}    │ map fields                 ║
	//  ╚═══════╧════════════════════════════╝
	//
	// Default: true.
	EmitUnpopulated bool `yaml:"emitUnpopulated"`

	// Only for proto file options. Default: nil.
	// Example: go_package, csharp_namespace...
	ProtoFileOptions map[string]string `yaml:"protoFileOptions"`
}

Jump to

Keyboard shortcuts

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