package hopp import "git.tebibyte.media/sashakoshka/go-util/container" // Option allows an optional value to be defined without using a pointer. // TODO make generic alias once go 1.24 releases type Option[T any] ucontainer.Optional[T] func O[T any](value T) Option[T] { return Option[T](ucontainer.O(value)) } func Void[T any]() Option[T] { return Option[T](ucontainer.Void[T]()) } func (option Option[T]) Ok() bool { return (ucontainer.Optional[T])(option).Exists() } func (option Option[T]) Get() (T, bool) { return (ucontainer.Optional[T])(option).Value() } func (option Option[T]) Default(defaul T) T { if value, ok := option.Get(); ok { return value } return defaul }