Skip to content

Commit 716e1aa

Browse files
TomTom
authored andcommitted
WIP matchMaybe
1 parent 4faa2ec commit 716e1aa

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/Opaleye/Internal/MaybeFields.hs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,14 @@ justFields = pure
9292
maybeFields :: PP.Default IfPP b b => b -> (a -> b) -> MaybeFields a -> b
9393
maybeFields = maybeFieldsExplicit PP.def
9494

95+
matchMaybe :: PP.Default IfPP b b => MaybeFields a -> (Maybe a -> b) -> b
96+
matchMaybe mf f = maybeFields (f Nothing) (f . Just) mf
97+
98+
example :: (Num a, PP.Default IfPP a a) => MaybeFields a -> a
99+
example mf = matchMaybe mf $ \case
100+
Nothing -> 0
101+
Just x -> x * 100
102+
95103
-- | The Opaleye analogue of 'Data.Maybe.fromMaybe'
96104
fromMaybeFields :: PP.Default IfPP b b => b -> MaybeFields b -> b
97105
fromMaybeFields = fromMaybeFieldsExplicit PP.def

0 commit comments

Comments
 (0)