mirror of
https://github.com/foomo/sesamy-go.git
synced 2025-10-16 12:35:43 +00:00
91 lines
1.2 KiB
Go
91 lines
1.2 KiB
Go
package measurementprotocol
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
func Set[T any](v T) *T {
|
|
return &v
|
|
}
|
|
|
|
func SetInt(v int) *string {
|
|
if v == 0 {
|
|
return nil
|
|
}
|
|
return Set(fmt.Sprintf("%d", v))
|
|
}
|
|
|
|
func SetUInt(v uint) *string {
|
|
if v == 0 {
|
|
return nil
|
|
}
|
|
return Set(fmt.Sprintf("%d", v))
|
|
}
|
|
|
|
func SetInt32(v int32) *string {
|
|
if v == 0 {
|
|
return nil
|
|
}
|
|
return Set(fmt.Sprintf("%d", v))
|
|
}
|
|
|
|
func SetUInt32(v uint32) *string {
|
|
if v == 0 {
|
|
return nil
|
|
}
|
|
return Set(fmt.Sprintf("%d", v))
|
|
}
|
|
|
|
func SetInt64(v int64) *string {
|
|
if v == 0 {
|
|
return nil
|
|
}
|
|
return Set(fmt.Sprintf("%d", v))
|
|
}
|
|
|
|
func SetUInt64(v uint64) *string {
|
|
if v == 0 {
|
|
return nil
|
|
}
|
|
return Set(fmt.Sprintf("%d", v))
|
|
}
|
|
|
|
func SetFloat32(v float32) *string {
|
|
if v == 0 {
|
|
return nil
|
|
}
|
|
return Set(fmt.Sprintf("%f", v))
|
|
}
|
|
|
|
func SetFloat64(v float64) *string {
|
|
if v == 0 {
|
|
return nil
|
|
}
|
|
return Set(fmt.Sprintf("%f", v))
|
|
}
|
|
|
|
func SetString(v string) *string {
|
|
if v == "" {
|
|
return nil
|
|
}
|
|
return Set(v)
|
|
}
|
|
|
|
func SetBool(v bool) *string {
|
|
if !v {
|
|
return nil
|
|
}
|
|
return Set("1")
|
|
}
|
|
|
|
func Get[T any](v *T) T {
|
|
return *v
|
|
}
|
|
|
|
func GetDefault[T any](v *T, fallback T) T {
|
|
if v == nil {
|
|
return fallback
|
|
}
|
|
return *v
|
|
}
|