Files
goutils/type/utils.go

45 lines
832 B
Go

package Type
func Expect[T any](val Unwrappable[T], msg string) T {
return val.Expect(msg)
}
func Unwrap[T any](val Unwrappable[T]) T {
return val.Unwrap()
}
func UnwrapOr[T any](val Unwrappable[T]) (def T) {
return val.UnwrapOr(def)
}
func UnwrapOrDefault[T any](val Unwrappable[T]) T {
return val.UnwrapOrDefault()
}
func UnwrapOrElse[T any](val Unwrappable[T], f func() T) T {
return val.UnwrapOrElse(f)
}
// Returns if the underlying data has a Value (false in case of None or Error)
func HasValue(val ValueContainer) bool {
return val.HasValue()
}
func ResultWrap[T any](val T, err error) Result[T] {
if err == nil {
return Ok(val)
}
return Err[T](err)
}
func ResultWrapb[T any](err error, val T) Result[T] {
if err == nil {
return Ok(val)
}
return Err[T](err)
}
func Ptr[T any](v T) *T {
return &v
}