appcore/ptr/ptr.go

53 lines
677 B
Go

// Copyright 2024 Patial Tech (Ankit Patial).
// All rights reserved.
package ptr
import "strings"
func Bool(v bool) *bool {
return &v
}
func GetBool(v *bool) bool {
if v == nil {
return false
}
return *v
}
func Str(v string) *string {
return &v
}
func NumStr(v *string) string {
if v == nil {
return ""
}
return *v
}
func StrTrim(v *string) *string {
if v == nil {
return nil
}
*v = strings.TrimSpace(*v)
return v
}
type N interface {
uint8 | int8 | uint16 | int16 | uint | int | uint32 | int32 | uint64 | int64 | float32 | float64
}
func Number[T N](v T) *T {
return &v
}
func GetNumber[T N](v *T) T {
if v == nil {
return 0
}
return *v
}