module Cfg.Source where
import Cfg.Deriving.ConfigValue (ConfigValue)
import Data.ByteString qualified as BS
import Data.ByteString.Lazy qualified as BL
import Data.Int
import Data.List.NonEmpty
import Data.Text (Text)
import Data.Text.Lazy qualified as TL
import Data.Tree (Tree)
import Data.Vector
import Data.Word
type FetchSource m = Tree Text -> m (Tree Text)
class RootConfig a where
toRootConfig :: Tree Text
class NestedConfig a where
toNestedConfig :: [Tree Text]
instance NestedConfig (ConfigValue a) where
toNestedConfig :: [Tree Text]
toNestedConfig = []
deriving via (ConfigValue ()) instance NestedConfig ()
deriving via (ConfigValue Bool) instance NestedConfig Bool
deriving via (ConfigValue Char) instance NestedConfig Char
deriving via (ConfigValue TL.Text) instance NestedConfig TL.Text
deriving via (ConfigValue BL.ByteString) instance NestedConfig BL.ByteString
deriving via (ConfigValue BS.ByteString) instance NestedConfig BS.ByteString
deriving via (ConfigValue Text) instance NestedConfig Text
deriving via (ConfigValue [a]) instance NestedConfig [a]
deriving via (ConfigValue (NonEmpty a)) instance NestedConfig (NonEmpty a)
deriving via (ConfigValue (Vector a)) instance NestedConfig (Vector a)
deriving via (ConfigValue (Maybe a)) instance NestedConfig (Maybe a)
deriving via (ConfigValue Double) instance NestedConfig Double
deriving via (ConfigValue Float) instance NestedConfig Float
deriving via (ConfigValue Int) instance NestedConfig Int
deriving via (ConfigValue Int8) instance NestedConfig Int8
deriving via (ConfigValue Int16) instance NestedConfig Int16
deriving via (ConfigValue Int32) instance NestedConfig Int32
deriving via (ConfigValue Int64) instance NestedConfig Int64
deriving via (ConfigValue Integer) instance NestedConfig Integer
deriving via (ConfigValue Word) instance NestedConfig Word
deriving via (ConfigValue Word8) instance NestedConfig Word8
deriving via (ConfigValue Word16) instance NestedConfig Word16
deriving via (ConfigValue Word32) instance NestedConfig Word32
deriving via (ConfigValue Word64) instance NestedConfig Word64
deriving via (ConfigValue (a, b)) instance NestedConfig (a, b)