You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
729 B
23 lines
729 B
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 |
|
}
|
|
|