chore(settings): use generics for helping functions (#1427)
This commit is contained in:
@@ -2,56 +2,14 @@ package helpers
|
||||
|
||||
import (
|
||||
"net/netip"
|
||||
"time"
|
||||
|
||||
"github.com/qdm12/log"
|
||||
)
|
||||
|
||||
func DefaultInt(existing *int, defaultValue int) (
|
||||
result *int) {
|
||||
func DefaultPointer[T any](existing *T, defaultValue T) (
|
||||
result *T) {
|
||||
if existing != nil {
|
||||
return existing
|
||||
}
|
||||
result = new(int)
|
||||
*result = defaultValue
|
||||
return result
|
||||
}
|
||||
|
||||
func DefaultUint8(existing *uint8, defaultValue uint8) (
|
||||
result *uint8) {
|
||||
if existing != nil {
|
||||
return existing
|
||||
}
|
||||
result = new(uint8)
|
||||
*result = defaultValue
|
||||
return result
|
||||
}
|
||||
|
||||
func DefaultUint16(existing *uint16, defaultValue uint16) (
|
||||
result *uint16) {
|
||||
if existing != nil {
|
||||
return existing
|
||||
}
|
||||
result = new(uint16)
|
||||
*result = defaultValue
|
||||
return result
|
||||
}
|
||||
func DefaultUint32(existing *uint32, defaultValue uint32) (
|
||||
result *uint32) {
|
||||
if existing != nil {
|
||||
return existing
|
||||
}
|
||||
result = new(uint32)
|
||||
*result = defaultValue
|
||||
return result
|
||||
}
|
||||
|
||||
func DefaultBool(existing *bool, defaultValue bool) (
|
||||
result *bool) {
|
||||
if existing != nil {
|
||||
return existing
|
||||
}
|
||||
result = new(bool)
|
||||
result = new(T)
|
||||
*result = defaultValue
|
||||
return result
|
||||
}
|
||||
@@ -64,43 +22,14 @@ func DefaultString(existing string, defaultValue string) (
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
func DefaultStringPtr(existing *string, defaultValue string) (result *string) {
|
||||
if existing != nil {
|
||||
return existing
|
||||
}
|
||||
result = new(string)
|
||||
*result = defaultValue
|
||||
return result
|
||||
}
|
||||
|
||||
func DefaultDuration(existing time.Duration,
|
||||
defaultValue time.Duration) (result time.Duration) {
|
||||
func DefaultNumber[T Number](existing T, defaultValue T) ( //nolint:ireturn
|
||||
result T) {
|
||||
if existing != 0 {
|
||||
return existing
|
||||
}
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
func DefaultDurationPtr(existing *time.Duration,
|
||||
defaultValue time.Duration) (result *time.Duration) {
|
||||
if existing != nil {
|
||||
return existing
|
||||
}
|
||||
result = new(time.Duration)
|
||||
*result = defaultValue
|
||||
return result
|
||||
}
|
||||
|
||||
func DefaultLogLevel(existing *log.Level,
|
||||
defaultValue log.Level) (result *log.Level) {
|
||||
if existing != nil {
|
||||
return existing
|
||||
}
|
||||
result = new(log.Level)
|
||||
*result = defaultValue
|
||||
return result
|
||||
}
|
||||
|
||||
func DefaultIP(existing netip.Addr, defaultValue netip.Addr) (
|
||||
result netip.Addr) {
|
||||
if existing.IsValid() {
|
||||
|
||||
Reference in New Issue
Block a user