{-# options_haddock hide #-} module Polysemy.Conc.Queue.Result where import qualified Polysemy.Conc.Data.QueueResult as QueueResult import Polysemy.Conc.Data.QueueResult (QueueResult) closedResult :: Maybe d -> QueueResult d closedResult :: Maybe d -> QueueResult d closedResult = \case Maybe d Nothing -> QueueResult d forall d. QueueResult d QueueResult.Closed Just d d -> d -> QueueResult d forall d. d -> QueueResult d QueueResult.Success d d {-# INLINE closedResult #-} naResult :: Maybe d -> QueueResult d naResult :: Maybe d -> QueueResult d naResult = \case Maybe d Nothing -> QueueResult d forall d. QueueResult d QueueResult.NotAvailable Just d d -> d -> QueueResult d forall d. d -> QueueResult d QueueResult.Success d d {-# INLINE naResult #-} closedNaResult :: Maybe (Maybe d) -> QueueResult d closedNaResult :: Maybe (Maybe d) -> QueueResult d closedNaResult = \case Maybe (Maybe d) Nothing -> QueueResult d forall d. QueueResult d QueueResult.Closed Just Maybe d Nothing -> QueueResult d forall d. QueueResult d QueueResult.NotAvailable Just (Just d d) -> d -> QueueResult d forall d. d -> QueueResult d QueueResult.Success d d {-# INLINE closedNaResult #-} closedBoolResult :: Maybe Bool -> QueueResult () closedBoolResult :: Maybe Bool -> QueueResult () closedBoolResult = \case Maybe Bool Nothing -> QueueResult () forall d. QueueResult d QueueResult.Closed Just Bool False -> QueueResult () forall d. QueueResult d QueueResult.NotAvailable Just Bool True -> () -> QueueResult () forall d. d -> QueueResult d QueueResult.Success () {-# INLINE closedBoolResult #-} resultToMaybe :: QueueResult d -> Maybe d resultToMaybe :: QueueResult d -> Maybe d resultToMaybe = \case QueueResult.Success d d -> d -> Maybe d forall a. a -> Maybe a Just d d QueueResult d QueueResult.NotAvailable -> Maybe d forall a. Maybe a Nothing QueueResult d QueueResult.Closed -> Maybe d forall a. Maybe a Nothing {-# INLINE resultToMaybe #-}