module WGPU.Internal.SMaybe
(
SMaybe (SNothing, SJust),
fromSMaybe,
)
where
data SMaybe a
= SNothing
| SJust !a
deriving (SMaybe a -> SMaybe a -> Bool
(SMaybe a -> SMaybe a -> Bool)
-> (SMaybe a -> SMaybe a -> Bool) -> Eq (SMaybe a)
forall a. Eq a => SMaybe a -> SMaybe a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SMaybe a -> SMaybe a -> Bool
$c/= :: forall a. Eq a => SMaybe a -> SMaybe a -> Bool
== :: SMaybe a -> SMaybe a -> Bool
$c== :: forall a. Eq a => SMaybe a -> SMaybe a -> Bool
Eq, Int -> SMaybe a -> ShowS
[SMaybe a] -> ShowS
SMaybe a -> String
(Int -> SMaybe a -> ShowS)
-> (SMaybe a -> String) -> ([SMaybe a] -> ShowS) -> Show (SMaybe a)
forall a. Show a => Int -> SMaybe a -> ShowS
forall a. Show a => [SMaybe a] -> ShowS
forall a. Show a => SMaybe a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SMaybe a] -> ShowS
$cshowList :: forall a. Show a => [SMaybe a] -> ShowS
show :: SMaybe a -> String
$cshow :: forall a. Show a => SMaybe a -> String
showsPrec :: Int -> SMaybe a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> SMaybe a -> ShowS
Show)
fromSMaybe ::
a ->
SMaybe a ->
a
fromSMaybe :: a -> SMaybe a -> a
fromSMaybe a
defaultValue SMaybe a
sMaybe =
case SMaybe a
sMaybe of
SMaybe a
SNothing -> a
defaultValue
SJust a
providedValue -> a
providedValue