package utils import "fmt" func ToPtr[T any](v T) *T { return &v } func FromPtr[T any](s *T) T { if s == nil { var zero T return zero } return *s } func Sprintp[T any](s *T) string { if s == nil { return "" } return fmt.Sprintf("%v", *s) } func DerefOrDefault[T any](s *T, defaultValue T) T { if s == nil { return defaultValue } return *s } func CastPtr[S any, T any](s *S, castFunc func(S) T) *T { if s == nil { return nil } t := castFunc(*s) return &t }