module Barbies.TH.Config
( DeclareBareBConfig(..)
, classic
, passthrough
) where
import Language.Haskell.TH
data DeclareBareBConfig = DeclareBareBConfig
{ DeclareBareBConfig -> [Name]
friends :: [Name]
, DeclareBareBConfig -> String -> Maybe String
bareName :: String -> Maybe String
, DeclareBareBConfig -> String -> Maybe String
coveredName :: String -> Maybe String
, DeclareBareBConfig -> String -> String
barbieName :: String -> String
, DeclareBareBConfig -> Q Name
switchName :: Q Name
, DeclareBareBConfig -> Q Name
wrapperName :: Q Name
}
classic :: DeclareBareBConfig
classic :: DeclareBareBConfig
classic = DeclareBareBConfig :: [Name]
-> (String -> Maybe String)
-> (String -> Maybe String)
-> (String -> String)
-> Q Name
-> Q Name
-> DeclareBareBConfig
DeclareBareBConfig
{ friends :: [Name]
friends = []
, bareName :: String -> Maybe String
bareName = Maybe String -> String -> Maybe String
forall a b. a -> b -> a
const Maybe String
forall a. Maybe a
Nothing
, coveredName :: String -> Maybe String
coveredName = Maybe String -> String -> Maybe String
forall a b. a -> b -> a
const Maybe String
forall a. Maybe a
Nothing
, barbieName :: String -> String
barbieName = String -> String
forall a. a -> a
id
, switchName :: Q Name
switchName = String -> Q Name
newName String
"sw"
, wrapperName :: Q Name
wrapperName = String -> Q Name
newName String
"h"
}
passthrough :: DeclareBareBConfig
passthrough :: DeclareBareBConfig
passthrough = DeclareBareBConfig :: [Name]
-> (String -> Maybe String)
-> (String -> Maybe String)
-> (String -> String)
-> Q Name
-> Q Name
-> DeclareBareBConfig
DeclareBareBConfig
{ friends :: [Name]
friends = []
, bareName :: String -> Maybe String
bareName = String -> Maybe String
forall a. a -> Maybe a
Just
, coveredName :: String -> Maybe String
coveredName = String -> Maybe String
forall a. a -> Maybe a
Just (String -> Maybe String)
-> (String -> String) -> String -> Maybe String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (String -> String -> String
forall a. [a] -> [a] -> [a]
++String
"H")
, barbieName :: String -> String
barbieName = (String -> String -> String
forall a. [a] -> [a] -> [a]
++String
"B")
, switchName :: Q Name
switchName = String -> Q Name
newName String
"sw"
, wrapperName :: Q Name
wrapperName = String -> Q Name
newName String
"h"
}