diff --git a/config/get.go b/config/get.go index 2d40f87..38b053a 100644 --- a/config/get.go +++ b/config/get.go @@ -17,6 +17,17 @@ var ( boolTable map[string]bool ) +type ( + // StringOption defines the returned function by GetAsString. + StringOption func() string + // StringArrayOption defines the returned function by GetAsStringArray. + StringArrayOption func() []string + // IntOption defines the returned function by GetAsInt. + IntOption func() int64 + // BoolOption defines the returned function by GetAsBool. + BoolOption func() bool +) + func getValidityFlag() *abool.AtomicBool { validityFlagLock.RLock() defer validityFlagLock.RUnlock() @@ -31,7 +42,7 @@ func resetValidityFlag() { } // GetAsString returns a function that returns the wanted string with high performance. -func GetAsString(name string, fallback string) func() string { +func GetAsString(name string, fallback string) StringOption { valid := getValidityFlag() value := findStringValue(name, fallback) return func() string { @@ -44,7 +55,7 @@ func GetAsString(name string, fallback string) func() string { } // GetAsStringArray returns a function that returns the wanted string with high performance. -func GetAsStringArray(name string, fallback []string) func() []string { +func GetAsStringArray(name string, fallback []string) StringArrayOption { valid := getValidityFlag() value := findStringArrayValue(name, fallback) return func() []string { @@ -57,7 +68,7 @@ func GetAsStringArray(name string, fallback []string) func() []string { } // GetAsInt returns a function that returns the wanted int with high performance. -func GetAsInt(name string, fallback int64) func() int64 { +func GetAsInt(name string, fallback int64) IntOption { valid := getValidityFlag() value := findIntValue(name, fallback) return func() int64 { @@ -70,7 +81,7 @@ func GetAsInt(name string, fallback int64) func() int64 { } // GetAsBool returns a function that returns the wanted int with high performance. -func GetAsBool(name string, fallback bool) func() bool { +func GetAsBool(name string, fallback bool) BoolOption { valid := getValidityFlag() value := findBoolValue(name, fallback) return func() bool { diff --git a/config/registry.go b/config/registry.go index da5ff5f..b67c981 100644 --- a/config/registry.go +++ b/config/registry.go @@ -14,9 +14,9 @@ const ( OptTypeInt uint8 = 3 OptTypeBool uint8 = 4 - ExpertiseLevelUser int8 = 1 - ExpertiseLevelExpert int8 = 2 - ExpertiseLevelDeveloper int8 = 3 + ExpertiseLevelUser uint8 = 1 + ExpertiseLevelExpert uint8 = 2 + ExpertiseLevelDeveloper uint8 = 3 ) var (