packages feed

yaml-unscrambler-0.1.0.14: 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)