packages feed

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