forked from wrenn/wrenn
Prototype with single host server and no admin panel (#2)
Reviewed-on: wrenn/sandbox#2 Co-authored-by: pptx704 <rafeed@omukk.dev> Co-committed-by: pptx704 <rafeed@omukk.dev>
This commit is contained in:
45
envd/internal/shared/utils/ptr.go
Normal file
45
envd/internal/shared/utils/ptr.go
Normal file
@ -0,0 +1,45 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
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 "<nil>"
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user