make application with base logic
This commit is contained in:
42
internal/common/nullable/value.go
Normal file
42
internal/common/nullable/value.go
Normal file
@ -0,0 +1,42 @@
|
||||
package nullable
|
||||
|
||||
type Value[T any] struct {
|
||||
value T
|
||||
valid bool
|
||||
}
|
||||
|
||||
func NewValue[T any](value T) Value[T] {
|
||||
return Value[T]{
|
||||
value: value,
|
||||
valid: true,
|
||||
}
|
||||
}
|
||||
|
||||
func NewValuePtr[T any](value *T) Value[T] {
|
||||
if value == nil {
|
||||
return Value[T]{}
|
||||
}
|
||||
|
||||
return NewValue(*value)
|
||||
}
|
||||
|
||||
func (n Value[T]) Value() T {
|
||||
return n.value
|
||||
}
|
||||
|
||||
func (n Value[T]) Valid() bool {
|
||||
return n.valid
|
||||
}
|
||||
|
||||
func (n Value[T]) ValutPtr() *T {
|
||||
if n.valid {
|
||||
return &n.value
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (n *Value[T]) Set(value T) {
|
||||
n.valid = true
|
||||
n.value = value
|
||||
}
|
||||
Reference in New Issue
Block a user