format

package
v0.4.4 Latest Latest
Warning

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

Go to latest
Published: Apr 20, 2021 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const EnumInvalid = -1

EnumInvalid is the constant value that an enum gets assigned when it could not be parsed

Variables

View Source
var ColorizeContainer = ColorizeDesc

ColorizeContainer colorizes the input string as "Container"

View Source
var ColorizeDesc = color.New(color.FgHiBlack).SprintFunc()

ColorizeDesc colorizes the input string as "Description"

View Source
var ColorizeEnum = color.New(color.FgHiCyan).SprintFunc()

ColorizeEnum colorizes the input string as "Enum"

View Source
var ColorizeError = ColorizeFalse

ColorizeError colorizes the input string as "Error"

View Source
var ColorizeFalse = color.New(color.FgHiRed).SprintFunc()

ColorizeFalse colorizes the input string as "False"

View Source
var ColorizeNumber = color.New(color.FgHiBlue).SprintFunc()

ColorizeNumber colorizes the input string as "Number"

View Source
var ColorizeProp = color.New(color.FgHiMagenta).SprintFunc()

ColorizeProp colorizes the input string as "Prop"

View Source
var ColorizeString = color.New(color.FgHiYellow).SprintFunc()

ColorizeString colorizes the input string as "String"

View Source
var ColorizeTrue = color.New(color.FgHiGreen).SprintFunc()

ColorizeTrue colorizes the input string as "True"

Functions

func BuildQuery

func BuildQuery(cqr types.ConfigQueryResolver) string

BuildQuery converts the fields of a config object to a delimited query string

func ColorFormatTree added in v0.4.2

func ColorFormatTree(rootNode *ContainerNode, withValues bool) string

ColorFormatTree returns a color highlighted string representation of a node tree

func ColorizeToken added in v0.4.2

func ColorizeToken(value string, tokenType NodeTokenType) string

ColorizeToken colorizes the value according to the tokenType

func ColorizeValue

func ColorizeValue(value string, isEnum bool) string

ColorizeValue colorizes the input string according to what type appears to be

func CreateEnumFormatter

func CreateEnumFormatter(names []string) types.EnumFormatter

CreateEnumFormatter creates a EnumFormatter struct

func GetConfigFieldString

func GetConfigFieldString(config r.Value, field FieldInfo) (value string, err error)

GetConfigFieldString serializes the config field value to a string representation

func GetConfigPropFromString added in v0.4.2

func GetConfigPropFromString(structType r.Type, value string) (r.Value, error)

GetConfigPropFromString deserializes a config property from a string representation using the ConfigProp interface

func GetConfigPropString added in v0.4.2

func GetConfigPropString(propPtr r.Value) (string, error)

GetConfigPropString serializes a config property to a string representation using the ConfigProp interface

func GetConfigQueryResolver

func GetConfigQueryResolver(config types.ServiceConfig) types.ConfigQueryResolver

GetConfigQueryResolver returns the config itself if it implements ConfigQueryResolver otherwise it creates and returns a PropKeyResolver that implements it

func GetServiceConfig added in v0.4.2

func GetServiceConfig(service types.Service) types.ServiceConfig

GetServiceConfig returns the inner config of a service

func IsNumber

func IsNumber(value string) bool

IsNumber returns whether the specified string is number-like

func ParseBool

func ParseBool(value string, defaultValue bool) (parsedValue bool, ok bool)

ParseBool returns true for "1","true","yes" or false for "0","false","no" or defaultValue for any other value

func PrintBool

func PrintBool(value bool) string

PrintBool returns "Yes" if value is true, otherwise returns "No"

func SetConfigField

func SetConfigField(config r.Value, field FieldInfo, inputValue string) (valid bool, err error)

SetConfigField deserializes the inputValue and sets the field of a config to that value

Types

type ContainerNode added in v0.4.2

type ContainerNode struct {
	*FieldInfo
	Items        []Node
	MaxKeyLength int
}

ContainerNode is a Node with child items

func GetConfigFormat

func GetConfigFormat(config types.ServiceConfig) *ContainerNode

GetConfigFormat returns type and field information about a ServiceConfig

func GetServiceConfigFormat

func GetServiceConfigFormat(service types.Service) *ContainerNode

GetServiceConfigFormat returns type and field information about a ServiceConfig, resolved from it's Service

func (*ContainerNode) Field added in v0.4.2

func (n *ContainerNode) Field() *FieldInfo

Field returns the inner FieldInfo

func (*ContainerNode) TokenType added in v0.4.2

func (n *ContainerNode) TokenType() NodeTokenType

TokenType always returns ContainerToken for ContainerNode

func (*ContainerNode) Update added in v0.4.2

func (n *ContainerNode) Update(tv r.Value)

Update updates the items to match the provided value

type EnumFormatter

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

EnumFormatter is the helper methods for enum-like types

func (EnumFormatter) Names

func (ef EnumFormatter) Names() []string

Names is the list of the valid Enum string values

func (EnumFormatter) Parse

func (ef EnumFormatter) Parse(s string) int

Parse takes an enum mapped string and returns it's int representation or EnumInvalid (-1)

func (EnumFormatter) Print

func (ef EnumFormatter) Print(e int) string

Print takes a enum mapped int and returns it's string representation or "Invalid"

type FieldInfo

type FieldInfo struct {
	Name          string
	Type          r.Type
	EnumFormatter types.EnumFormatter
	Description   string
	DefaultValue  string
	Template      string
	Required      bool
	Title         bool
	Base          int
	Keys          []string
}

FieldInfo is the meta data about a config field

func (*FieldInfo) IsEnum added in v0.4.2

func (fi *FieldInfo) IsEnum() bool

IsEnum returns whether a EnumFormatter has been assigned to the field and that it is of a suitable type

type Node added in v0.4.2

type Node interface {
	Field() *FieldInfo
	TokenType() NodeTokenType
	Update(tv r.Value)
}

Node is the generic config tree item

type NodeTokenType added in v0.4.2

type NodeTokenType int

NodeTokenType is used to represent the type of value that a node has for syntax highlighting

const (
	// UnknownToken represents all unknown/unspecified tokens
	UnknownToken NodeTokenType = iota
	// NumberToken represents all numbers
	NumberToken
	// StringToken represents strings and keys
	StringToken
	// EnumToken represents enum values
	EnumToken
	// TrueToken represent boolean true
	TrueToken
	// FalseToken represent boolean false
	FalseToken
	// PropToken represent a serializable struct prop
	PropToken
	// ErrorToken represent a value that was not serializable or otherwise invalid
	ErrorToken
	// ContainerToken is used for Array/Slice and Map tokens
	ContainerToken
)

type PropKeyResolver

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

PropKeyResolver implements the ConfigQueryResolver interface for services that uses key tags for query props

func NewPropKeyResolver

func NewPropKeyResolver(config types.ServiceConfig) PropKeyResolver

NewPropKeyResolver creates a new PropKeyResolver and initializes it using the provided config

func (*PropKeyResolver) Bind

Bind is called to set the internal config reference for the PropKeyResolver

func (*PropKeyResolver) Get

func (pkr *PropKeyResolver) Get(key string) (string, error)

Get returns the value of a config property tagged with the corresponding key

func (*PropKeyResolver) IsDefault added in v0.4.2

func (pkr *PropKeyResolver) IsDefault(key string, value string) bool

IsDefault returns whether the specified key value is the default value

func (*PropKeyResolver) KeyIsPrimary

func (pkr *PropKeyResolver) KeyIsPrimary(key string) bool

KeyIsPrimary returns whether the key is the primary (and not an alias)

func (*PropKeyResolver) QueryFields

func (pkr *PropKeyResolver) QueryFields() []string

QueryFields returns a list of tagged keys

func (*PropKeyResolver) Set

func (pkr *PropKeyResolver) Set(key string, value string) error

Set sets the value of it's bound struct's property, tagged with the corresponding key

func (*PropKeyResolver) SetDefaultProps added in v0.4.0

func (pkr *PropKeyResolver) SetDefaultProps(config types.ServiceConfig) error

SetDefaultProps mutates the provided config, setting the tagged fields with their default values

func (*PropKeyResolver) UpdateConfigFromParams

func (pkr *PropKeyResolver) UpdateConfigFromParams(config types.ServiceConfig, params *types.Params) error

UpdateConfigFromParams mutates the provided config, updating the values from it's corresponding params

type ValueNode added in v0.4.2

type ValueNode struct {
	*FieldInfo
	Value string
	// contains filtered or unexported fields
}

ValueNode is a Node without any child items

func (*ValueNode) Field added in v0.4.2

func (n *ValueNode) Field() *FieldInfo

Field returns the inner FieldInfo

func (*ValueNode) TokenType added in v0.4.2

func (n *ValueNode) TokenType() NodeTokenType

TokenType returns a NodeTokenType that matches the value

func (*ValueNode) Update added in v0.4.2

func (n *ValueNode) Update(tv r.Value)

Update updates the value string from the provided value

Jump to

Keyboard shortcuts

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