on master help sign in
Merge pull request #109 from rhymoid/update-cpp-min-version
da1ae2dMichael Snoyman
Data/Yaml.hs+4
@@ -78,7 +78,11 @@ import Data.Aeson
78 , Object, Array
78 , Object, Array
79 , withObject, withText, withArray, withScientific, withBool
79 , withObject, withText, withArray, withScientific, withBool
80 )
80 )
81+#if MIN_VERSION_aeson(1,0,0)
82+import Data.Aeson.Text (encodeToTextBuilder)
83+#else
81import Data.Aeson.Encode (encodeToTextBuilder)
84import Data.Aeson.Encode (encodeToTextBuilder)
85+#endif
82import Data.Aeson.Types (Pair, parseMaybe, parseEither, Parser)
86import Data.Aeson.Types (Pair, parseMaybe, parseEither, Parser)
83import Data.ByteString (ByteString)
87import Data.ByteString (ByteString)
84import qualified Data.Conduit as C
88import qualified Data.Conduit as C
Data/Yaml/Builder.hs+4
@@ -22,7 +22,11 @@ import Prelude hiding (null)
22
22
23import Control.Arrow (second)
23import Control.Arrow (second)
24import Control.Monad.Trans.Resource (runResourceT)
24import Control.Monad.Trans.Resource (runResourceT)
25+#if MIN_VERSION_aeson(1,0,0)
26+import Data.Aeson.Text (encodeToTextBuilder)
27+#else
25import Data.Aeson.Encode (encodeToTextBuilder)
28import Data.Aeson.Encode (encodeToTextBuilder)
29+#endif
26import Data.Aeson.Types (Value(..))
30import Data.Aeson.Types (Value(..))
27import Data.ByteString (ByteString)
31import Data.ByteString (ByteString)
28import qualified Data.ByteString.Char8 as S8
32import qualified Data.ByteString.Char8 as S8
Data/Yaml/Parser.hs+1−6
@@ -13,12 +13,7 @@ import Control.Monad.Trans.Resource (MonadThrow, monadThrow, runResourceT)
13import Control.Monad.Trans.Writer.Strict (tell, WriterT)
13import Control.Monad.Trans.Writer.Strict (tell, WriterT)
14import Data.ByteString (ByteString)
14import Data.ByteString (ByteString)
15import Data.Conduit
15import Data.Conduit
16−#if MIN_VERSION_conduit(1,1,0)
17import Data.Conduit.Lift (runWriterC)
16import Data.Conduit.Lift (runWriterC)
18−#define runWriterSC runWriterC
19−#else
20−import Data.Conduit.Lift (runWriterSC)
21−#endif
22import qualified Data.Map as Map
17import qualified Data.Map as Map
23#if !MIN_VERSION_base(4,8,0)
18#if !MIN_VERSION_base(4,8,0)
24import Data.Monoid (Monoid (..))
19import Data.Monoid (Monoid (..))
@@ -193,7 +188,7 @@ sinkValue =
193 Just e -> monadThrow $ UnexpectedEvent e
188 Just e -> monadThrow $ UnexpectedEvent e
194
189
195sinkRawDoc :: MonadThrow m => Consumer Event m RawDoc
190sinkRawDoc :: MonadThrow m => Consumer Event m RawDoc
196−sinkRawDoc = uncurry RawDoc <$> runWriterSC sinkValue
191+sinkRawDoc = uncurry RawDoc <$> runWriterC sinkValue
197
192
198readYamlFile :: FromYaml a => FilePath -> IO a
193readYamlFile :: FromYaml a => FilePath -> IO a
199readYamlFile fp = runResourceT (decodeFile fp $$ sinkRawDoc) >>= parseRawDoc
194readYamlFile fp = runResourceT (decodeFile fp $$ sinkRawDoc) >>= parseRawDoc
Text/Libyaml.hs+4−37
@@ -479,12 +479,7 @@ newtype ToEventRawException = ToEventRawException CInt
479 deriving (Show, Typeable)
479 deriving (Show, Typeable)
480instance Exception ToEventRawException
480instance Exception ToEventRawException
481
481
482−decode :: MonadResource m => B.ByteString
482+decode :: MonadResource m => B.ByteString -> Producer m Event
483−#if MIN_VERSION_conduit(1, 0, 0)
484− -> Producer m Event
485−#else
486− -> GSource m Event
487−#endif
488decode bs | B8.null bs = return ()
483decode bs | B8.null bs = return ()
489decode bs =
484decode bs =
490 bracketP alloc cleanup (runParser . fst)
485 bracketP alloc cleanup (runParser . fst)
@@ -526,12 +521,7 @@ openFile file rawOpenFlags openMode = do
526 then withCString openMode $ \openMode' -> c_fdopen fd openMode'
521 then withCString openMode $ \openMode' -> c_fdopen fd openMode'
527 else return nullPtr
522 else return nullPtr
528
523
529−decodeFile :: MonadResource m => FilePath
524+decodeFile :: MonadResource m => FilePath -> Producer m Event
530−#if MIN_VERSION_conduit(1, 0, 0)
531− -> Producer m Event
532−#else
533− -> GSource m Event
534−#endif
535decodeFile file =
525decodeFile file =
536 bracketP alloc cleanup (runParser . fst)
526 bracketP alloc cleanup (runParser . fst)
537 where
527 where
@@ -559,12 +549,7 @@ decodeFile file =
559 c_yaml_parser_delete ptr
549 c_yaml_parser_delete ptr
560 free ptr
550 free ptr
561
551
562−runParser :: MonadResource m => Parser
552+runParser :: MonadResource m => Parser -> Producer m Event
563−#if MIN_VERSION_conduit(1, 0, 0)
564− -> Producer m Event
565−#else
566− -> GSource m Event
567−#endif
568runParser parser = do
553runParser parser = do
569 e <- liftIO $ parserParseOne' parser
554 e <- liftIO $ parserParseOne' parser
570 case e of
555 case e of
@@ -588,12 +573,7 @@ parserParseOne' parser = allocaBytes eventSize $ \er -> do
588 return $ Left $ YamlParseException problem context problemMark
573 return $ Left $ YamlParseException problem context problemMark
589 else Right <$> getEvent er
574 else Right <$> getEvent er
590
575
591−encode :: MonadResource m
592−#if MIN_VERSION_conduit(1, 0, 0)
593− => Consumer Event m ByteString
576+encode :: MonadResource m => Consumer Event m ByteString
594−#else
595− => GSink Event m ByteString
596−#endif
597encode =
577encode =
598 runEmitter alloc close
578 runEmitter alloc close
599 where
579 where
@@ -610,11 +590,7 @@ encode =
610
590
611encodeFile :: MonadResource m
591encodeFile :: MonadResource m
612 => FilePath
592 => FilePath
613−#if MIN_VERSION_conduit(1, 0, 0)
614 -> Consumer Event m ()
593 -> Consumer Event m ()
615−#else
616− -> GInfSink Event m
617−#endif
618encodeFile filePath =
594encodeFile filePath =
619 bracketP getFile c_fclose $ \file -> runEmitter (alloc file) (\u _ -> return u)
595 bracketP getFile c_fclose $ \file -> runEmitter (alloc file) (\u _ -> return u)
620 where
596 where
@@ -628,13 +604,8 @@ encodeFile filePath =
628
604
629runEmitter :: MonadResource m
605runEmitter :: MonadResource m
630 => (Emitter -> IO a) -- ^ alloc
606 => (Emitter -> IO a) -- ^ alloc
631−#if MIN_VERSION_conduit(1, 0, 0)
632 -> (() -> a -> IO b) -- ^ close
607 -> (() -> a -> IO b) -- ^ close
633 -> Consumer Event m b
608 -> Consumer Event m b
634−#else
635− -> (u -> a -> IO b) -- ^ close
636− -> Pipe l Event o u m b
637−#endif
638runEmitter allocI closeI =
609runEmitter allocI closeI =
639 bracketP alloc cleanup go
610 bracketP alloc cleanup go
640 where
611 where
@@ -654,11 +625,7 @@ runEmitter allocI closeI =
654 go (emitter, a) =
625 go (emitter, a) =
655 loop
626 loop
656 where
627 where
657−#if MIN_VERSION_conduit(1, 0, 0)
658 loop = await >>= maybe (close ()) push
628 loop = await >>= maybe (close ()) push
659−#else
660− loop = awaitE >>= either close push
661−#endif
662
629
663 push e = do
630 push e = do
664 _ <- liftIO $ toEventRaw e $ c_yaml_emitter_emit emitter
631 _ <- liftIO $ toEventRaw e $ c_yaml_emitter_emit emitter