From 479b63d8c30c0bc6e6475882d7fb573db5dad1f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sun, 17 Jul 2022 21:51:30 +0200 Subject: MonadStorage for context with Storage instance --- src/Service.hs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/Service.hs') diff --git a/src/Service.hs b/src/Service.hs index 7d5c7e7..22c983b 100644 --- a/src/Service.hs +++ b/src/Service.hs @@ -111,6 +111,9 @@ data ServiceHandlerState s = ServiceHandlerState newtype ServiceHandler s a = ServiceHandler (ReaderT (ServiceInput s) (WriterT [ServiceReply s] (StateT (ServiceHandlerState s) (ExceptT String IO))) a) deriving (Functor, Applicative, Monad, MonadReader (ServiceInput s), MonadWriter [ServiceReply s], MonadState (ServiceHandlerState s), MonadError String, MonadIO) +instance MonadStorage (ServiceHandler s) where + getStorage = asks $ peerStorage . svcPeer + instance MonadHead LocalState (ServiceHandler s) where updateLocalHead f = do (ls, x) <- liftIO . f =<< gets svcLocal -- cgit v1.2.3