// Package gg implements simple "extensions" to Go language. Based on https://github.com/icza/gog
package gg

// P returns a pointer to the input value
func P[T any](v T) *T {
	return &v
}

// V returns the value of the input pointer, or a zero value if the input pointer is nil.
func V[T any](p *T) T {
	if p == nil {
		var zero T
		return zero
	}
	return *p
}

func If[T any](cond bool, v1, v2 T) T {
	if cond {
		return v1
	}
	return v2
}