package pointers import ( "time" "next.orly.dev/pkg/encoders/timestamp" ) // PointerToValue is a generic interface (type constraint) to refer to any // pointer to almost any kind of common type of value. // // see the utils/values package for a set of methods to accept these values and // return the correct type pointer to them. type PointerToValue interface { ~*uint | ~*int | ~*uint8 | ~*uint16 | ~*uint32 | ~*uint64 | ~*int8 | ~*int16 | ~*int32 | ~*int64 | ~*float32 | ~*float64 | ~*string | ~*[]string | ~*time.Time | ~*time.Duration | ~*[]byte | ~*[][]byte | ~*timestamp.T } // Present determines whether there is a value for a PointerToValue type. func Present[V PointerToValue](i V) bool { return i != nil }