packages feed

ngx-export 0.2.0.0 → 0.2.1.0

raw patch · 2 files changed

+21/−9 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ NgxExport: ngxExportServiceIOYY :: Name -> Q [Dec]

Files

NgxExport.hs view
@@ -10,6 +10,7 @@                  ,ngxExportYY                  ,ngxExportBY                  ,ngxExportAsyncIOYY+                 ,ngxExportServiceIOYY                  ,ngxExportHandler                  ,ngxExportDefHandler                  ,ngxExportUnsafeHandler) where@@ -37,7 +38,7 @@                | BLS           ([String] -> Bool)                | YY            (B.ByteString -> L.ByteString)                | BY            (B.ByteString -> Bool)-               | IOYY          (B.ByteString -> IO L.ByteString)+               | IOYY          (B.ByteString -> Bool -> IO L.ByteString)                | Handler       (B.ByteString -> (L.ByteString, String, Int))                | UnsafeHandler (B.ByteString ->                                     (B.ByteString, B.ByteString, Int))@@ -50,21 +51,27 @@                    'Handler, 'UnsafeHandler] [1 ..] :: [(Name, Int)])     ] -ngxExport :: Name -> Name -> Q Type -> Name -> Q [Dec]-ngxExport e h t f = sequence+ngxExport' :: (Name -> Q Exp) -> Name -> Name -> Q Type -> Name -> Q [Dec]+ngxExport' m e h t f = sequence     [funD nameFt $ body [|exportType $efVar|],      ForeignD . ExportF CCall ftName nameFt <$> [t|IO CInt|],      funD nameF $ body [|$hVar $efVar|],      ForeignD . ExportF CCall fName nameF <$> t     ]     where hVar   = varE h-          efVar  = conE e `appE` varE f+          efVar  = conE e `appE` m f           fName  = "ngx_hs_" ++ nameBase f           nameF  = mkName fName           ftName = "type_" ++ fName           nameFt = mkName ftName           body b = [clause [] (normalB b) []] +ngxExport :: Name -> Name -> Q Type -> Name -> Q [Dec]+ngxExport = ngxExport' varE++ngxExportC :: Name -> Name -> Q Type -> Name -> Q [Dec]+ngxExportC = ngxExport' $ infixE (Just $ varE 'const) (varE '(.)) . Just . varE+ ngxExportSS =     ngxExport 'SS 'sS     [t|CString -> CInt -> Ptr CString -> IO CInt|]@@ -90,9 +97,13 @@     ngxExport 'BY 'bY     [t|CString -> CInt -> IO CUInt|] ngxExportAsyncIOYY =+    ngxExportC 'IOYY 'ioyY+    [t|CString -> CInt ->+        CInt -> CUInt -> Ptr CString -> Ptr CInt -> Ptr CUInt -> IO ()|]+ngxExportServiceIOYY =     ngxExport 'IOYY 'ioyY     [t|CString -> CInt ->-        CInt -> Ptr CString -> Ptr CInt -> Ptr CUInt -> IO ()|]+        CInt -> CUInt -> Ptr CString -> Ptr CInt -> Ptr CUInt -> IO ()|] ngxExportHandler =     ngxExport 'Handler 'handler     [t|CString -> CInt ->@@ -210,10 +221,11 @@     return l  ioyY :: NgxExport -> CString -> CInt ->-    CInt -> Ptr CString -> Ptr CInt -> Ptr CUInt -> IO ()-ioyY (IOYY f) x (fromIntegral -> n) (fromIntegral -> fd) p pl r =+    CInt -> CUInt -> Ptr CString -> Ptr CInt -> Ptr CUInt -> IO ()+ioyY (IOYY f) x (fromIntegral -> n) (fromIntegral -> fd)+        ((/= 0) -> fstRun) p pl r =     void . async $ do-    s <- (Right <$> (B.unsafePackCStringLen (x, n) >>= f))+    s <- (Right <$> (B.unsafePackCStringLen (x, n) >>= flip f fstRun))         `catchIOError` (return . Left . show)     either         (\s -> do
ngx-export.cabal view
@@ -1,5 +1,5 @@ name:                ngx-export-version:             0.2.0.0+version:             0.2.1.0 synopsis:            Helper module for Nginx haskell module description:         Helper module for         <http://github.com/lyokha/nginx-haskell-module Nginx haskell module>