fakedata-0.1.0.0: src/Faker/Provider/Cosmere.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
module Faker.Provider.Cosmere where
import Config
import Control.Monad.IO.Class
import Data.Map.Strict (Map)
import Data.Monoid ((<>))
import Data.Text (Text)
import Data.Vector (Vector)
import Data.Yaml
import Faker
import Faker.Internal
import Faker.Provider.TH
import Language.Haskell.TH
parseCosmere :: FromJSON a => FakerSettings -> Value -> Parser a
parseCosmere settings (Object obj) = do
en <- obj .: (getLocale settings)
faker <- en .: "faker"
cosmere <- faker .: "cosmere"
pure cosmere
parseCosmere settings val = fail $ "expected Object, but got " <> (show val)
parseCosmereField ::
(FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a
parseCosmereField settings txt val = do
cosmere <- parseCosmere settings val
field <- cosmere .:? txt .!= mempty
pure field
$(genParser "cosmere" "aons")
$(genProvider "cosmere" "aons")
$(genParser "cosmere" "shard_worlds")
$(genProvider "cosmere" "shard_worlds")
$(genParser "cosmere" "shards")
$(genProvider "cosmere" "shards")
$(genParser "cosmere" "surges")
$(genProvider "cosmere" "surges")
$(genParser "cosmere" "knights_radiant")
$(genProvider "cosmere" "knights_radiant")
$(genParser "cosmere" "metals")
$(genProvider "cosmere" "metals")
$(genParser "cosmere" "allomancers")
$(genProvider "cosmere" "allomancers")
$(genParser "cosmere" "feruchemists")
$(genProvider "cosmere" "feruchemists")
$(genParser "cosmere" "heralds")
$(genProvider "cosmere" "heralds")
$(genParser "cosmere" "sprens")
$(genProvider "cosmere" "sprens")