mirror of
https://github.com/bitmagnet-io/bitmagnet.git
synced 2026-07-21 19:55:30 -04:00
27 lines
351 B
Go
27 lines
351 B
Go
package model
|
|
|
|
type Maybe[T interface{}] struct {
|
|
Val T
|
|
Valid bool
|
|
}
|
|
|
|
func MaybeValid[T interface{}](v T) Maybe[T] {
|
|
return Maybe[T]{Val: v, Valid: true}
|
|
}
|
|
|
|
func (n Maybe[T]) IsValid() bool {
|
|
return n.Valid
|
|
}
|
|
|
|
func (n Maybe[T]) IsDefined() bool {
|
|
return n.Valid
|
|
}
|
|
|
|
func (n Maybe[T]) Addr() *T {
|
|
if !n.Valid {
|
|
return nil
|
|
}
|
|
|
|
return &n.Val
|
|
}
|