module Data.Yaml.Extended
( module Data.Yaml
, toString
, toList
) where
import qualified Data.Text as T
import qualified Data.Vector as V
import Data.Yaml
import Data.Scientific
toString :: Value -> Maybe String
toString :: Value -> Maybe String
toString (String t :: Text
t) = String -> Maybe String
forall a. a -> Maybe a
Just (Text -> String
T.unpack Text
t)
toString (Bool True) = String -> Maybe String
forall a. a -> Maybe a
Just "true"
toString (Bool False) = String -> Maybe String
forall a. a -> Maybe a
Just "false"
toString (Number d :: Scientific
d) | Scientific -> Bool
isInteger Scientific
d = String -> Maybe String
forall a. a -> Maybe a
Just (FPFormat -> Maybe Int -> Scientific -> String
formatScientific FPFormat
Fixed (Int -> Maybe Int
forall a. a -> Maybe a
Just 0) Scientific
d)
| Bool
otherwise = String -> Maybe String
forall a. a -> Maybe a
Just (Scientific -> String
forall a. Show a => a -> String
show Scientific
d)
toString _ = Maybe String
forall a. Maybe a
Nothing
toList :: Value -> Maybe [Value]
toList :: Value -> Maybe [Value]
toList (Array a :: Array
a) = [Value] -> Maybe [Value]
forall a. a -> Maybe a
Just (Array -> [Value]
forall a. Vector a -> [a]
V.toList Array
a)
toList _ = Maybe [Value]
forall a. Maybe a
Nothing