wai-middleware-verbs 0.3.1 → 0.3.2
raw patch · 2 files changed
+10/−24 lines, 2 files
Files
src/Network/Wai/Middleware/Verbs.hs view
@@ -50,7 +50,6 @@ , -- * Utilities lookupVerb , getVerb- , mapVerbs ) where @@ -81,13 +80,7 @@ -- * Types -- | A map from an HTTP verb, to a result and uploading method.-newtype VerbMap r = VerbMap- { getVerbMap :: HashMap Verb r- } deriving (Functor)--instance Monoid r => Monoid (VerbMap r) where- mempty = VerbMap mempty- mappend (VerbMap x) (VerbMap y) = VerbMap $ HM.unionWith (<>) x y+type VerbMap r = HashMap Verb r type Verb = StdMethod @@ -111,7 +104,7 @@ -- | Take the monadic partial result of @lookupVerb@, and actually h the upload. lookupVerb :: Verb -> VerbMap r -> Maybe r-lookupVerb v = HM.lookup v . getVerbMap+lookupVerb = HM.lookup {-# INLINEABLE lookupVerb #-} @@ -139,7 +132,7 @@ deriving instance (MonadResource m, MonadBase IO m) => MonadResource (VerbListenerT r m) -execVerbListenerT :: (Monad m, Monoid r) => VerbListenerT r m a -> m (VerbMap r)+execVerbListenerT :: (Monad m) => VerbListenerT r m a -> m (VerbMap r) execVerbListenerT xs = execStateT (runVerbListenerT xs) mempty {-# INLINEABLE execVerbListenerT #-}@@ -155,7 +148,7 @@ get :: ( Monad m , Monoid r ) => r -> VerbListenerT r m ()-get r = tell' . VerbMap $ HM.singleton GET r+get r = tell' $ HM.singleton GET r {-# INLINEABLE get #-} @@ -163,7 +156,7 @@ post :: ( Monad m , Monoid r ) => r -> VerbListenerT r m ()-post r = tell' . VerbMap $ HM.singleton POST r+post r = tell' $ HM.singleton POST r {-# INLINEABLE post #-} @@ -171,7 +164,7 @@ put :: ( Monad m , Monoid r ) => r -> VerbListenerT r m ()-put r = tell' . VerbMap $ HM.singleton PUT r+put r = tell' $ HM.singleton PUT r {-# INLINEABLE put #-} @@ -179,18 +172,11 @@ delete :: ( Monad m , Monoid r ) => r -> VerbListenerT r m ()-delete r = tell' . VerbMap $ HM.singleton DELETE r+delete r = tell' $ HM.singleton DELETE r {-# INLINEABLE delete #-} -tell' :: (Monoid w, MonadState w m) => w -> m ()-tell' x = modify' (<> x)+tell' :: (Monoid r, MonadState (VerbMap r) m) => VerbMap r -> m ()+tell' x = modify' (\y -> HM.unionWith (<>) y x) {-# INLINEABLE tell' #-}--mapVerbs :: (Monad m, Monoid r, Monoid s) => (r -> s) -> VerbListenerT r m () -> VerbListenerT s m ()-mapVerbs f xs = do- vmap <- lift $ execVerbListenerT xs- tell' $ f <$> vmap--{-# INLINEABLE mapVerbs #-}
wai-middleware-verbs.cabal view
@@ -1,5 +1,5 @@ Name: wai-middleware-verbs-Version: 0.3.1+Version: 0.3.2 Author: Athan Clark <athan.clark@gmail.com> Maintainer: Athan Clark <athan.clark@gmail.com> License: BSD3