Added strMapToYaml instance

This commit is contained in:
Dominick Gendill 2017-05-09 17:43:52 -06:00
parent 849484bf3f
commit ae9461cbc6

View File

@ -1,10 +1,12 @@
module Data.YAML.Foreign.Encode where module Data.YAML.Foreign.Encode where
import Data.Map as M import Data.Map as M
import Data.StrMap as StrMap
import Data.Array (toUnfoldable) import Data.Array (toUnfoldable)
import Data.Function.Uncurried (Fn4, runFn4) import Data.Function.Uncurried (Fn4, runFn4)
import Data.List (List) import Data.List (List)
import Data.Maybe (Maybe, maybe) import Data.Maybe (Maybe, maybe)
import Data.StrMap (StrMap, insert)
import Data.Tuple (Tuple(..), fst, snd) import Data.Tuple (Tuple(..), fst, snd)
import Prelude (class Eq, class Show, map, show, ($), (<>), (==), (<<<)) import Prelude (class Eq, class Show, map, show, ($), (<>), (==), (<<<))
import Unsafe.Coerce (unsafeCoerce) import Unsafe.Coerce (unsafeCoerce)
@ -44,6 +46,9 @@ instance eqYValue :: Eq YValue where
class ToYAML a where class ToYAML a where
toYAML :: a -> YValue toYAML :: a -> YValue
instance strMapToYAML :: (ToYAML a) => ToYAML (StrMap a) where
toYAML strMap = YObject $ StrMap.fold (\acc key value -> M.insert key (toYAML value) acc) M.empty strMap
instance booleanToYAML :: ToYAML Boolean where instance booleanToYAML :: ToYAML Boolean where
toYAML = YBoolean toYAML = YBoolean