packages feed

yaml-unscrambler-0.1.0.18: library/YamlUnscrambler/Util/Yaml.hs

module YamlUnscrambler.Util.Yaml where

import qualified Conduit
import qualified Data.Yaml.Parser as YamlParser
import qualified Text.Libyaml as Libyaml
import YamlUnscrambler.Prelude

parseByteStringToRawDoc :: ByteString -> Either Text YamlParser.RawDoc
parseByteStringToRawDoc input =
  first (mappend "YAML AST parsing: " . showAsText)
    $ unsafePerformIO
    $ try @SomeException
    $ Conduit.runConduitRes
    $ Conduit.fuse (Libyaml.decode input) (YamlParser.sinkRawDoc)