Skip to content
Snippets Groups Projects
Commit 52a75bff authored by Jens Nolte's avatar Jens Nolte
Browse files

Remove unsafeObservableIO

parent 2a020b5c
No related branches found
No related tags found
No related merge requests found
...@@ -21,7 +21,6 @@ module Quasar.Observable ( ...@@ -21,7 +21,6 @@ module Quasar.Observable (
observeBlocking, observeBlocking,
fnObservable, fnObservable,
synchronousFnObservable, synchronousFnObservable,
unsafeObservableIO,
-- * Helper types -- * Helper types
ObservableCallback, ObservableCallback,
...@@ -409,23 +408,6 @@ instance IsObservable v (FailedObservable v) where ...@@ -409,23 +408,6 @@ instance IsObservable v (FailedObservable v) where
liftResourceManagerIO $ callback $ ObservableNotAvailable ex liftResourceManagerIO $ callback $ ObservableNotAvailable ex
-- | Create an observable by simply running an IO action whenever a value is requested or a callback is registered.
--
-- There is no mechanism to send more than one update, so the resulting `Observable` will only be useful in specific
-- situations, e.g. as a primitive for building a cache where a static value has to be calculated/loaded).
--
-- The function supplied to unsafeObservableIO must produce the same value when called multiple times to create a
-- correctly behaving observable.
unsafeObservableIO :: forall v. IO v -> Observable v
unsafeObservableIO action = synchronousFnObservable observeFn action
where
observeFn :: (ObservableMessage v -> ResourceManagerIO ()) -> ResourceManagerIO ()
observeFn callback = do
callback ObservableLoading
value <- (ObservableUpdate <$> liftIO action) `catchAll` (pure . ObservableNotAvailable @v)
callback value
-- TODO implement -- TODO implement
--cacheObservable :: IsObservable v o => o -> Observable v --cacheObservable :: IsObservable v o => o -> Observable v
--cacheObservable = undefined --cacheObservable = undefined
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment