cfg

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2023 License: MIT Imports: 1 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Builder

type Builder interface {
	// SetConfigFile tells builder where to look for file with the configuration map
	SetConfigFile(path string) Builder
	// AddExtraConfigFile allows to add additional files to be merged into the configuration map.
	// Very useful for test/staging/dev environments where you want to override default values with env specific ones
	AddExtraConfigFile(path string) Builder
	// SetEnvDelimiterReplacer allows to customize Environment variable delimiter replacer.
	//
	// By default ENVIRONMENT Variables look something similar to this: CONFIG_FOLDER or SCHEDULER_DEFAULTS_TIMEOUT
	// Config implementations allows (and encourage) you to treat config as a MAP.
	// To access sub key values it is common to use this syntax:
	//		scheduler.defaults.timeout
	// Now if you want ot override this config value with Environment one SCHEDULER_DEFAULTS_TIMEOUT you need to replace
	// '_' with '.'
	SetEnvDelimiterReplacer(from, to string) Builder
	// Build returns Config implementation
	Build() (Config, error)
}

Builder defines configuration builder options

type Config

type Config interface {
	/*
		Get returns a Value associated with a given key, you can later cast this to a type.

		Examples:

		- Get an Int value

				numberOfPossibilities := config.Get("path.to.key").Int() // if key is absent this will return 0

		- It's possible to check if there is an actual value associated with this key

				initTime := time.Now() // default value
				if value := config.Get("path.to.key"); value.IsSet() {
					initTime = value.Time()
				}
	*/
	Get(key string) Value
	// Set sets the value for the key within the Config map, it will take precedence over any other levels (ENV,flags,etc...)
	Set(key string, value interface{})
	// Map the entire configuration to a... map
	Map() map[string]interface{}
	// Implementation returns the actual lib/struct that is responsible for the above logic
	Implementation() interface{}
}

Config defines an interface to obtain configuration values from JSON/YAML/TOML or ENV

type Value

type Value interface {
	// IsSet will tell if this key really exists in the configuration
	IsSet() bool
	// Raw returns an interface{}. For a specific type value use a corresponding method.
	Raw() interface{}
	// Bool returns the value associated with the key as a boolean.
	Bool() bool
	// Int returns the value associated with the key as an integer.
	Int() int
	// Int32 returns the value associated with the key as an integer.
	Int32() int32
	// Int64 returns the value associated with the key as an integer.
	Int64() int64
	// Uint returns the value associated with the key as an unsigned integer.
	Uint() uint
	// Uint32 returns the value associated with the key as an unsigned integer.
	Uint32() uint32
	// Uint64 returns the value associated with the key as an unsigned integer.
	Uint64() uint64
	// Float64 returns the value associated with the key as a float64.
	Float64() float64
	// Time returns the value associated with the key as time.
	Time() time.Time
	// Duration returns the value associated with the key as a duration.
	Duration() time.Duration
	// String returns the value associated with the key as a string.
	String() string
	// IntSlice returns the value associated with the key as a slice of int values.
	IntSlice() []int
	// StringSlice returns the value associated with the key as a slice of strings.
	StringSlice() []string
	// StringMap returns the value associated with the key as a map of interfaces.
	StringMap() map[string]interface{}
	// StringMapString returns the value associated with the key as a map of strings.
	StringMapString() map[string]string
	// StringMapStringSlice returns the value associated with the key as a map to a slice of strings.
	StringMapStringSlice() map[string][]string
	// Unmarshal tries to unmarshal it to a 'result'. 'result' field must be a pointer.
	//
	// It heavy depends on what library is used to provide Config. For example Viper uses 'mapstructure' for that
	Unmarshal(result interface{}) error
}

Value is a convenient interface to cast value to different types

Directories

Path Synopsis
Package confkeys defines all the configuration key alias that configure all the bundled features of bricks.
Package confkeys defines all the configuration key alias that configure all the bundled features of bricks.
Package mock_cfg is a generated GoMock package.
Package mock_cfg is a generated GoMock package.

Jump to

Keyboard shortcuts

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