From 5c86ba46979ce7e162e745e4b3c002e0f5fe8a8a Mon Sep 17 00:00:00 2001
From: Jens Nolte <git@queezle.net>
Date: Mon, 30 Aug 2021 02:42:07 +0200
Subject: [PATCH] Add toObservableUpdate

---
 src/Quasar/Observable.hs | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/Quasar/Observable.hs b/src/Quasar/Observable.hs
index aeda1d4..7b9c636 100644
--- a/src/Quasar/Observable.hs
+++ b/src/Quasar/Observable.hs
@@ -8,6 +8,7 @@ module Quasar.Observable (
   IsObservable(..),
   Observable(..),
   ObservableMessage(..),
+  toObservableUpdate,
   asyncObserve,
   asyncObserve_,
 
@@ -68,6 +69,12 @@ instance Applicative ObservableMessage where
   liftA2 fn (ObservableUpdate x) (ObservableUpdate y) = ObservableUpdate (fn x y)
 
 
+toObservableUpdate :: MonadThrow m => ObservableMessage a -> m (Maybe a)
+toObservableUpdate (ObservableUpdate value) = pure $ Just value
+toObservableUpdate ObservableLoading = pure Nothing
+toObservableUpdate (ObservableNotAvailable ex) = throwM ex
+
+
 class IsRetrievable v a | a -> v where
   retrieve :: MonadAsync m => a -> m (Task v)
 
-- 
GitLab