From 33de7f09d31063ef2a4380bb2f2692653a6de06c Mon Sep 17 00:00:00 2001
From: Luke Shumaker <lukeshu@lukeshu.com>
Date: Thu, 9 Mar 2023 16:43:39 -0700
Subject: containers: Add OptionalValue and OptionalNil

---
 lib/containers/optional.go | 13 +++++++++++++
 1 file changed, 13 insertions(+)

(limited to 'lib/containers')

diff --git a/lib/containers/optional.go b/lib/containers/optional.go
index 5bb7bb6..26ec494 100644
--- a/lib/containers/optional.go
+++ b/lib/containers/optional.go
@@ -13,6 +13,19 @@ type Optional[T any] struct {
 	Val T
 }
 
+func OptionalValue[T any](val T) Optional[T] {
+	return Optional[T]{
+		OK:  true,
+		Val: val,
+	}
+}
+
+func OptionalNil[T any]() Optional[T] {
+	return Optional[T]{
+		OK: false,
+	}
+}
+
 var (
 	_ json.Marshaler   = Optional[bool]{}
 	_ json.Unmarshaler = (*Optional[bool])(nil)
-- 
cgit v1.2.3-2-g168b