Files
option/option.go
2026-02-27 22:17:21 +03:00

30 lines
361 B
Go

package option
type Option[T any] struct {
v T
valid bool
}
func Some[T any](v T) Option[T] {
return Option[T]{
v: v,
valid: true,
}
}
func None[T any]() Option[T] {
return Option[T]{}
}
func (o Option[T]) IsSome() bool {
return o.valid
}
func (o Option[T]) IsNone() bool {
return !o.valid
}
func (o Option[T]) Take() T {
return o.v
}