initial version

This commit is contained in:
2026-02-27 22:17:21 +03:00
parent 31f58f1c66
commit eba10f7f42
3 changed files with 120 additions and 0 deletions

29
option.go Normal file
View File

@@ -0,0 +1,29 @@
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
}