{-# LANGUAGE NoImplicitPrelude #-}
module Data.Morpheus.Server.Internal.TH.Types
( ServerTypeDefinition (..),
ServerDec,
ServerDecContext (..),
ServerConsD,
ServerFieldDefinition (..),
toServerField,
)
where
import Data.Morpheus.Types.Internal.AST
( ANY,
ConsD (..),
FieldDefinition,
IN,
TypeDefinition,
TypeKind,
TypeName,
)
import Relude
data ServerFieldDefinition cat s = ServerFieldDefinition
{ ServerFieldDefinition cat s -> Bool
isParametrized :: Bool,
ServerFieldDefinition cat s -> Maybe TypeName
argumentsTypeName :: Maybe TypeName,
ServerFieldDefinition cat s -> FieldDefinition cat s
originalField :: FieldDefinition cat s
}
deriving (Int -> ServerFieldDefinition cat s -> ShowS
[ServerFieldDefinition cat s] -> ShowS
ServerFieldDefinition cat s -> String
(Int -> ServerFieldDefinition cat s -> ShowS)
-> (ServerFieldDefinition cat s -> String)
-> ([ServerFieldDefinition cat s] -> ShowS)
-> Show (ServerFieldDefinition cat s)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall (cat :: TypeCategory) (s :: Stage).
Int -> ServerFieldDefinition cat s -> ShowS
forall (cat :: TypeCategory) (s :: Stage).
[ServerFieldDefinition cat s] -> ShowS
forall (cat :: TypeCategory) (s :: Stage).
ServerFieldDefinition cat s -> String
showList :: [ServerFieldDefinition cat s] -> ShowS
$cshowList :: forall (cat :: TypeCategory) (s :: Stage).
[ServerFieldDefinition cat s] -> ShowS
show :: ServerFieldDefinition cat s -> String
$cshow :: forall (cat :: TypeCategory) (s :: Stage).
ServerFieldDefinition cat s -> String
showsPrec :: Int -> ServerFieldDefinition cat s -> ShowS
$cshowsPrec :: forall (cat :: TypeCategory) (s :: Stage).
Int -> ServerFieldDefinition cat s -> ShowS
Show)
toServerField :: FieldDefinition c s -> ServerFieldDefinition c s
toServerField :: FieldDefinition c s -> ServerFieldDefinition c s
toServerField = Bool
-> Maybe TypeName
-> FieldDefinition c s
-> ServerFieldDefinition c s
forall (cat :: TypeCategory) (s :: Stage).
Bool
-> Maybe TypeName
-> FieldDefinition cat s
-> ServerFieldDefinition cat s
ServerFieldDefinition Bool
False Maybe TypeName
forall a. Maybe a
Nothing
type ServerConsD cat s = ConsD (ServerFieldDefinition cat s)
data ServerTypeDefinition cat s = ServerTypeDefinition
{ ServerTypeDefinition cat s -> TypeName
tName :: TypeName,
ServerTypeDefinition cat s -> [ServerTypeDefinition IN s]
typeArgD :: [ServerTypeDefinition IN s],
ServerTypeDefinition cat s -> [ServerConsD cat s]
tCons :: [ServerConsD cat s],
ServerTypeDefinition cat s -> TypeKind
tKind :: TypeKind,
ServerTypeDefinition cat s -> Maybe (TypeDefinition ANY s)
typeOriginal :: Maybe (TypeDefinition ANY s)
}
deriving (Int -> ServerTypeDefinition cat s -> ShowS
[ServerTypeDefinition cat s] -> ShowS
ServerTypeDefinition cat s -> String
(Int -> ServerTypeDefinition cat s -> ShowS)
-> (ServerTypeDefinition cat s -> String)
-> ([ServerTypeDefinition cat s] -> ShowS)
-> Show (ServerTypeDefinition cat s)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall (cat :: TypeCategory) (s :: Stage).
Int -> ServerTypeDefinition cat s -> ShowS
forall (cat :: TypeCategory) (s :: Stage).
[ServerTypeDefinition cat s] -> ShowS
forall (cat :: TypeCategory) (s :: Stage).
ServerTypeDefinition cat s -> String
showList :: [ServerTypeDefinition cat s] -> ShowS
$cshowList :: forall (cat :: TypeCategory) (s :: Stage).
[ServerTypeDefinition cat s] -> ShowS
show :: ServerTypeDefinition cat s -> String
$cshow :: forall (cat :: TypeCategory) (s :: Stage).
ServerTypeDefinition cat s -> String
showsPrec :: Int -> ServerTypeDefinition cat s -> ShowS
$cshowsPrec :: forall (cat :: TypeCategory) (s :: Stage).
Int -> ServerTypeDefinition cat s -> ShowS
Show)
type ServerDec = Reader ServerDecContext
newtype ServerDecContext = ServerDecContext
{ ServerDecContext -> Bool
namespace :: Bool
}