fleet/server/ptr/ptr.go
Jahziel Villasana-Espinoza 8aeb5e3dac
add display name to missing spots (#36219)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35654 Resolves #36194

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

## Testing

- [x] Added/updated automated tests
- [x] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)

- [x] QA'd all new/changed functionality manually

For unreleased bug fixes in a release candidate, one of:

- [x] Confirmed that the fix is not expected to adversely impact load
test results
2025-11-24 18:20:39 -05:00

90 lines
1.6 KiB
Go

// Package ptr includes functions for creating pointers from values.
package ptr
import (
"encoding/json"
"time"
)
// String returns a pointer to the provided string.
func String(x string) *string {
return &x
}
// Int returns a pointer to the provided int.
func Int(x int) *int {
return &x
}
// Uint returns a pointer to the provided uint.
func Uint(x uint) *uint {
return &x
}
// Bool returns a pointer to the provided bool.
func Bool(x bool) *bool {
return &x
}
// BoolPtr returns a double pointer to the provided bool.
func BoolPtr(x bool) **bool {
p := Bool(x)
return &p
}
func StringPtr(x string) **string {
p := String(x)
return &p
}
// Time returns a pointer to the provided time.Time.
func Time(x time.Time) *time.Time {
return &x
}
// TimePtr returns a *time.Time Pointer (**time.Time) for the provided time.
func TimePtr(x time.Time) **time.Time {
t := Time(x)
return &t
}
// RawMessage returns a pointer to the provided json.RawMessage.
func RawMessage(x json.RawMessage) *json.RawMessage {
return &x
}
// Float64 returns a pointer to a float64.
func Float64(x float64) *float64 {
return &x
}
// Float64Ptr returns a pointer to a *float64.
func Float64Ptr(x float64) **float64 {
p := Float64(x)
return &p
}
func Int64(x int64) *int64 {
return &x
}
func Duration(x time.Duration) *time.Duration {
return &x
}
// T is the generic version to get the pointer of any type.
func T[T any](x T) *T {
return &x
}
// ValOrZero returns the value of x if x is not nil, and the zero value
// for T otherwise.
func ValOrZero[T any](x *T) T {
var ret T
if x != nil {
return *x
}
return ret
}