Changeset 8566 for src/Pugs/Prim/Yaml.hs
- Timestamp:
- 01/03/06 23:03:30 (3 years ago)
- Files:
-
- 1 modified
-
src/Pugs/Prim/Yaml.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Prim/Yaml.hs
r7826 r8566 3 3 4 4 module Pugs.Prim.Yaml ( 5 evalYaml 5 evalYaml, dumpYaml 6 6 ) where 7 7 import Pugs.Internals … … 34 34 hv <- liftSTM $ (newTVar (Map.fromList vals) :: STM IHash) 35 35 return $ VRef (hashRef hv) 36 37 dumpYaml :: Val -> Eval Val 38 dumpYaml v = do 39 obj <- toYaml =<< fromVal v 40 rv <- liftIO (emitYaml obj) 41 case rv of 42 Left err -> fail $ "YAML Emit Error: " ++ err 43 Right str -> return $ VStr str 44 45 toYaml :: Val -> Eval YamlNode 46 toYaml VUndef = return YamlNil 47 toYaml (VStr str) = return $ YamlStr (encodeUTF8 str) 48 toYaml (VList nodes) = do 49 fmap YamlSeq $ mapM toYaml nodes 50 --toYaml (VHash hash) = do 51 -- fmap YamlMap $ Map.toList hash 52 53 54
