packages feed

wai-middleware-verbs 0.4.0 → 0.4.0.1

raw patch · 2 files changed

+36/−2 lines, 2 filesdep +monad-controldep +monad-control-alignedPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

Dependencies added: monad-control, monad-control-aligned

API changes (from Hackage documentation)

+ Network.Wai.Middleware.Verbs: instance Control.Monad.Trans.Control.Aligned.MonadBaseControl b m stM => Control.Monad.Trans.Control.Aligned.MonadBaseControl b (Network.Wai.Middleware.Verbs.VerbListenerT r m) (Data.Functor.Compose.Compose stM ((,) (Network.Wai.Middleware.Verbs.VerbMap r)))
+ Network.Wai.Middleware.Verbs: instance Control.Monad.Trans.Control.Aligned.MonadTransControl (Network.Wai.Middleware.Verbs.VerbListenerT r) ((,) (Network.Wai.Middleware.Verbs.VerbMap r))
+ Network.Wai.Middleware.Verbs: instance Control.Monad.Trans.Control.MonadBaseControl b m => Control.Monad.Trans.Control.MonadBaseControl b (Network.Wai.Middleware.Verbs.VerbListenerT r m)
+ Network.Wai.Middleware.Verbs: instance Control.Monad.Trans.Control.MonadTransControl (Network.Wai.Middleware.Verbs.VerbListenerT r)

Files

src/Network/Wai/Middleware/Verbs.hs view
@@ -1,11 +1,14 @@ {-# LANGUAGE     FlexibleContexts+  , FlexibleInstances   , StandaloneDeriving   , ScopedTypeVariables   , MultiParamTypeClasses   , UndecidableInstances   , GeneralizedNewtypeDeriving   , DeriveGeneric+  , TypeFamilies+  , Rank2Types   , TypeSynonymInstances   #-} @@ -62,6 +65,7 @@ import           Data.Hashable (Hashable) import           Data.Maybe (fromMaybe) import qualified Data.ByteString.Lazy as LBS+import           Data.Functor.Compose (Compose) import           Control.Applicative (Alternative) import           Control.Monad (MonadPlus) import           Control.Monad.Fix (MonadFix)@@ -73,6 +77,8 @@ import           Control.Monad.Cont (MonadCont) import           Control.Monad.Base (MonadBase) import           Control.Monad.Catch (MonadCatch, MonadThrow, MonadMask)+import           Control.Monad.Trans.Control (MonadBaseControl (..), MonadTransControl (..), ComposeSt, defaultLiftBaseWith, defaultRestoreM, defaultLiftWith, defaultRestoreT)+import qualified Control.Monad.Trans.Control.Aligned as Aligned import           Control.Monad.Trans.Resource (MonadResource) import           Control.Monad.Except (MonadError) import           Control.Monad.Logger (MonadLogger)@@ -126,6 +132,32 @@              , MonadError e', MonadCont, MonadBase b, MonadThrow, MonadCatch              , MonadMask, MonadLogger              ) -- TODO: MonadControl++instance MonadTransControl (VerbListenerT r) where+  type StT (VerbListenerT r) a = StT (StateT (VerbMap r)) a+  liftWith = defaultLiftWith VerbListenerT runVerbListenerT+  restoreT = defaultRestoreT VerbListenerT++instance MonadBaseControl b m => MonadBaseControl b (VerbListenerT r m) where+  type StM (VerbListenerT r m) a = ComposeSt (VerbListenerT r) m a+  liftBaseWith = defaultLiftBaseWith+  restoreM = defaultRestoreM++instance Aligned.MonadTransControl (VerbListenerT r) ((,) (VerbMap r)) where+  liftWith client = VerbListenerT $ StateT $ \s ->+    let run :: forall m a. Monad m => VerbListenerT r m a -> m (VerbMap r, a)+        run (VerbListenerT (StateT g)) = do+          (x,s') <- g s+          pure (s',x)+    in  do x <- client run+           pure (x, s)+  restoreT x = VerbListenerT $ StateT $ \_ -> do+    (s,x') <- x+    pure (x',s)++instance Aligned.MonadBaseControl b m stM => Aligned.MonadBaseControl b (VerbListenerT r m) (Compose stM ((,) (VerbMap r))) where+  liftBaseWith = Aligned.defaultLiftBaseWith+  restoreM = Aligned.defaultRestoreM  deriving instance (MonadResource m, MonadBase IO m) => MonadResource (VerbListenerT r m) 
wai-middleware-verbs.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: c44481a358f46e101abf15c73f7e9876073a1bd3f4cc3ad6bac1db9e7ce8cb25+-- hash: f14c8019769f9489e79ba3b8049d8713701d5409040452e0d132e0fabce07cad  name:           wai-middleware-verbs-version:        0.4.0+version:        0.4.0.1 synopsis:       Route Wai middlewares based on HTTP verbs description:    Please see the README on Github at <https://git.localcooking.com/tooling/wai-middleware-verbs#readme> category:       Web@@ -41,6 +41,8 @@     , hashable     , http-types     , mmorph+    , monad-control+    , monad-control-aligned     , monad-logger     , mtl     , resourcet