Documentation ¶
Overview ¶
Package ini provides INI file read and write functionality in Go.
Index ¶
- Constants
- Variables
- func MapTo(v, source interface{}, others ...interface{}) error
- func MapToWithMapper(v interface{}, mapper NameMapper, source interface{}, others ...interface{}) error
- func ReflectFrom(cfg *File, v interface{}) error
- func ReflectFromWithMapper(cfg *File, v interface{}, mapper NameMapper) error
- func Version() string
- type File
- func (f *File) Append(source interface{}, others ...interface{}) error
- func (f *File) DeleteSection(name string)
- func (f *File) GetSection(name string) (*Section, error)
- func (f *File) MapTo(v interface{}) error
- func (f *File) NewSection(name string) (*Section, error)
- func (f *File) NewSections(names ...string) (err error)
- func (f *File) ReflectFrom(v interface{}) error
- func (f *File) Reload() (err error)
- func (f *File) SaveTo(filename string) error
- func (f *File) SaveToIndent(filename, indent string) error
- func (f *File) Section(name string) *Section
- func (f *File) SectionStrings() []string
- func (f *File) Sections() []*Section
- func (f *File) WriteTo(w io.Writer) (int64, error)
- func (f *File) WriteToIndent(w io.Writer, indent string) (n int64, err error)
- type Key
- func (k *Key) Bool() (bool, error)
- func (k *Key) Duration() (time.Duration, error)
- func (k *Key) Float64() (float64, error)
- func (k *Key) Float64s(delim string) []float64
- func (k *Key) In(defaultVal string, candidates []string) string
- func (k *Key) InFloat64(defaultVal float64, candidates []float64) float64
- func (k *Key) InInt(defaultVal int, candidates []int) int
- func (k *Key) InInt64(defaultVal int64, candidates []int64) int64
- func (k *Key) InTime(defaultVal time.Time, candidates []time.Time) time.Time
- func (k *Key) InTimeFormat(format string, defaultVal time.Time, candidates []time.Time) time.Time
- func (k *Key) InUint(defaultVal uint, candidates []uint) uint
- func (k *Key) InUint64(defaultVal uint64, candidates []uint64) uint64
- func (k *Key) Int() (int, error)
- func (k *Key) Int64() (int64, error)
- func (k *Key) Int64s(delim string) []int64
- func (k *Key) Ints(delim string) []int
- func (k *Key) MustBool(defaultVal ...bool) bool
- func (k *Key) MustDuration(defaultVal ...time.Duration) time.Duration
- func (k *Key) MustFloat64(defaultVal ...float64) float64
- func (k *Key) MustInt(defaultVal ...int) int
- func (k *Key) MustInt64(defaultVal ...int64) int64
- func (k *Key) MustString(defaultVal string) string
- func (k *Key) MustTime(defaultVal ...time.Time) time.Time
- func (k *Key) MustTimeFormat(format string, defaultVal ...time.Time) time.Time
- func (k *Key) MustUint(defaultVal ...uint) uint
- func (k *Key) MustUint64(defaultVal ...uint64) uint64
- func (k *Key) Name() string
- func (k *Key) RangeFloat64(defaultVal, min, max float64) float64
- func (k *Key) RangeInt(defaultVal, min, max int) int
- func (k *Key) RangeInt64(defaultVal, min, max int64) int64
- func (k *Key) RangeTime(defaultVal, min, max time.Time) time.Time
- func (k *Key) RangeTimeFormat(format string, defaultVal, min, max time.Time) time.Time
- func (k *Key) SetValue(v string)
- func (k *Key) String() string
- func (k *Key) Strings(delim string) []string
- func (k *Key) Time() (time.Time, error)
- func (k *Key) TimeFormat(format string) (time.Time, error)
- func (k *Key) Times(delim string) []time.Time
- func (k *Key) TimesFormat(format, delim string) []time.Time
- func (k *Key) Uint() (uint, error)
- func (k *Key) Uint64() (uint64, error)
- func (k *Key) Uint64s(delim string) []uint64
- func (k *Key) Uints(delim string) []uint
- func (k *Key) Validate(fn func(string) string) string
- func (k *Key) Value() string
- type NameMapper
- type Section
- func (s *Section) DeleteKey(name string)
- func (s *Section) GetKey(name string) (*Key, error)
- func (s *Section) HasKey(name string) bool
- func (s *Section) HasValue(value string) bool
- func (s *Section) Haskey(name string) bool
- func (s *Section) Key(name string) *Key
- func (s *Section) KeyStrings() []string
- func (s *Section) Keys() []*Key
- func (s *Section) KeysHash() map[string]string
- func (s *Section) MapTo(v interface{}) error
- func (s *Section) Name() string
- func (s *Section) NewKey(name, val string) (*Key, error)
- func (s *Section) ReflectFrom(v interface{}) error
Constants ¶
const (
DEFAULT_SECTION = "DEFAULT"
)
Variables ¶
var ( LineBreak = "\n" // Write spaces around "=" to look better. PrettyFormat = true )
Functions ¶
func MapTo ¶
func MapTo(v, source interface{}, others ...interface{}) error
MapTo maps data sources to given struct.
func MapToWithMapper ¶
func MapToWithMapper(v interface{}, mapper NameMapper, source interface{}, others ...interface{}) error
MapTo maps data sources to given struct with name mapper.
func ReflectFrom ¶
ReflectFrom reflects data sources from given struct.
func ReflectFromWithMapper ¶
func ReflectFromWithMapper(cfg *File, v interface{}, mapper NameMapper) error
ReflectFrom reflects data sources from given struct with name mapper.
Types ¶
type File ¶
type File struct { // Should make things safe, but sometimes doesn't matter. BlockMode bool NameMapper // contains filtered or unexported fields }
File represents a combination of a or more INI file(s) in memory.
func Load ¶
Load loads and parses from INI data sources. Arguments can be mixed of file name with string type, or raw data in []byte.
func (*File) DeleteSection ¶
DeleteSection deletes a section.
func (*File) GetSection ¶
GetSection returns section by given name.
func (*File) NewSection ¶
NewSection creates a new section.
func (*File) NewSections ¶
NewSections creates a list of sections.
func (*File) ReflectFrom ¶
ReflectFrom reflects file from given struct.
func (*File) SaveToIndent ¶
SaveToIndent writes content to file system with given value indention.
func (*File) SectionStrings ¶
SectionStrings returns list of section names.
type Key ¶
type Key struct { Comment string // contains filtered or unexported fields }
Key represents a key under a section.
func (*Key) In ¶
In always returns value without error, it returns default value if error occurs or doesn't fit into candidates.
func (*Key) InFloat64 ¶
InFloat64 always returns value without error, it returns default value if error occurs or doesn't fit into candidates.
func (*Key) InInt ¶
InInt always returns value without error, it returns default value if error occurs or doesn't fit into candidates.
func (*Key) InInt64 ¶
InInt64 always returns value without error, it returns default value if error occurs or doesn't fit into candidates.
func (*Key) InTime ¶
InTime always parses with RFC3339 format and returns value without error, it returns default value if error occurs or doesn't fit into candidates.
func (*Key) InTimeFormat ¶
InTimeFormat always parses with given format and returns value without error, it returns default value if error occurs or doesn't fit into candidates.
func (*Key) InUint ¶
InUint always returns value without error, it returns default value if error occurs or doesn't fit into candidates.
func (*Key) InUint64 ¶
InUint64 always returns value without error, it returns default value if error occurs or doesn't fit into candidates.
func (*Key) MustBool ¶
MustBool always returns value without error, it returns false if error occurs.
func (*Key) MustDuration ¶
MustDuration always returns value without error, it returns zero value if error occurs.
func (*Key) MustFloat64 ¶
MustFloat64 always returns value without error, it returns 0.0 if error occurs.
func (*Key) MustString ¶
MustString returns default value if key value is empty.
func (*Key) MustTime ¶
MustTime always parses with RFC3339 format and returns value without error, it returns zero value if error occurs.
func (*Key) MustTimeFormat ¶
MustTimeFormat always parses with given format and returns value without error, it returns zero value if error occurs.
func (*Key) MustUint64 ¶
MustUint64 always returns value without error, it returns 0 if error occurs.
func (*Key) RangeFloat64 ¶
RangeFloat64 checks if value is in given range inclusively, and returns default value if it's not.
func (*Key) RangeInt ¶
RangeInt checks if value is in given range inclusively, and returns default value if it's not.
func (*Key) RangeInt64 ¶
RangeInt64 checks if value is in given range inclusively, and returns default value if it's not.
func (*Key) RangeTime ¶
RangeTime checks if value with RFC3339 format is in given range inclusively, and returns default value if it's not.
func (*Key) RangeTimeFormat ¶
RangeTimeFormat checks if value with given format is in given range inclusively, and returns default value if it's not.
func (*Key) TimeFormat ¶
TimeFormat parses with given format and returns time.Time type value.
func (*Key) Times ¶
Times parses with RFC3339 format and returns list of time.Time divided by given delimiter.
func (*Key) TimesFormat ¶
TimesFormat parses with given format and returns list of time.Time divided by given delimiter.
type NameMapper ¶
NameMapper represents a ini tag name mapper.
var ( // AllCapsUnderscore converts to format ALL_CAPS_UNDERSCORE. AllCapsUnderscore NameMapper = func(raw string) string { newstr := make([]rune, 0, len(raw)) for i, chr := range raw { if isUpper := 'A' <= chr && chr <= 'Z'; isUpper { if i > 0 { newstr = append(newstr, '_') } } newstr = append(newstr, unicode.ToUpper(chr)) } return string(newstr) } // TitleUnderscore converts to format title_underscore. TitleUnderscore NameMapper = func(raw string) string { newstr := make([]rune, 0, len(raw)) for i, chr := range raw { if isUpper := 'A' <= chr && chr <= 'Z'; isUpper { if i > 0 { newstr = append(newstr, '_') } chr -= ('A' - 'a') } newstr = append(newstr, chr) } return string(newstr) } )
Built-in name getters.
type Section ¶
type Section struct { Comment string // contains filtered or unexported fields }
Section represents a config section.
func (*Section) HasKey ¶ added in v0.5.0
HasKey returns true if section contains a key with given name.
func (*Section) KeyStrings ¶
KeyStrings returns list of key names of section.
func (*Section) ReflectFrom ¶
ReflectFrom reflects secion from given struct.