ecstasy-0.2.0.0: A GHC.Generics based entity component system.

Safe HaskellNone
LanguageHaskell2010

Data.Ecstasy.Internal.Deriving

Documentation

class GConvertSetter a b where Source #

Minimal complete definition

gConvertSetter

Methods

gConvertSetter :: a x -> b x Source #

Instances

GConvertSetter (K1 * i (Maybe a)) (K1 * i' (Update a)) Source # 

Methods

gConvertSetter :: K1 * i (Maybe a) x -> K1 * i' (Update a) x Source #

GConvertSetter (K1 * i a) (K1 * i' (Update a)) Source # 

Methods

gConvertSetter :: K1 * i a x -> K1 * i' (Update a) x Source #

GConvertSetter (K1 * i a) (K1 * i' (Maybe a)) Source # 

Methods

gConvertSetter :: K1 * i a x -> K1 * i' (Maybe a) x Source #

(GConvertSetter a c, GConvertSetter b d) => GConvertSetter ((:*:) * a b) ((:*:) * c d) Source # 

Methods

gConvertSetter :: (* :*: a) b x -> (* :*: c) d x Source #

GConvertSetter f f' => GConvertSetter (M1 * i c f) (M1 * i' c' f') Source # 

Methods

gConvertSetter :: M1 * i c f x -> M1 * i' c' f' x Source #

class GGetEntity m a b where Source #

Minimal complete definition

gGetEntity

Methods

gGetEntity :: a x -> Int -> m (b x) Source #

Instances

(Applicative m, GGetEntity m a c, GGetEntity m b d) => GGetEntity m ((:*:) * a b) ((:*:) * c d) Source # 

Methods

gGetEntity :: (* :*: a) b x -> Int -> m ((* :*: c) d x) Source #

Applicative m => GGetEntity m (K1 * i (Maybe (Int, a))) (K1 * i' (Maybe a)) Source # 

Methods

gGetEntity :: K1 * i (Maybe (Int, a)) x -> Int -> m (K1 * i' (Maybe a) x) Source #

Applicative m => GGetEntity m (K1 * i (IntMap a)) (K1 * i' (Maybe a)) Source # 

Methods

gGetEntity :: K1 * i (IntMap a) x -> Int -> m (K1 * i' (Maybe a) x) Source #

Applicative m => GGetEntity m (K1 * i (VTable m a)) (K1 * i' (Maybe a)) Source # 

Methods

gGetEntity :: K1 * i (VTable m a) x -> Int -> m (K1 * i' (Maybe a) x) Source #

(Functor m, GGetEntity m f f') => GGetEntity m (M1 * i c f) (M1 * i' c' f') Source # 

Methods

gGetEntity :: M1 * i c f x -> Int -> m (M1 * i' c' f' x) Source #

class GSetEntity m a b where Source #

Minimal complete definition

gSetEntity

Methods

gSetEntity :: a x -> Int -> b x -> m (b x) Source #

Instances

(Applicative m, GSetEntity m a c, GSetEntity m b d) => GSetEntity m ((:*:) * a b) ((:*:) * c d) Source # 

Methods

gSetEntity :: (* :*: a) b x -> Int -> (* :*: c) d x -> m ((* :*: c) d x) Source #

Applicative m => GSetEntity m (K1 * i (Update a)) (K1 * i' (IntMap a)) Source # 

Methods

gSetEntity :: K1 * i (Update a) x -> Int -> K1 * i' (IntMap a) x -> m (K1 * i' (IntMap a) x) Source #

Applicative m => GSetEntity m (K1 * i (Update a)) (K1 * i' (VTable m a)) Source # 

Methods

gSetEntity :: K1 * i (Update a) x -> Int -> K1 * i' (VTable m a) x -> m (K1 * i' (VTable m a) x) Source #

Applicative m => GSetEntity m (K1 * i (Update a)) (K1 * i' (Maybe (Int, a))) Source # 

Methods

gSetEntity :: K1 * i (Update a) x -> Int -> K1 * i' (Maybe (Int, a)) x -> m (K1 * i' (Maybe (Int, a)) x) Source #

(Functor m, GSetEntity m f f') => GSetEntity m (M1 * i c f) (M1 * i' c' f') Source # 

Methods

gSetEntity :: M1 * i c f x -> Int -> M1 * i' c' f' x -> m (M1 * i' c' f' x) Source #

def :: forall keep a. (Generic a, GDefault keep (Rep a)) => a Source #

class GDefault (keep :: Bool) f where Source #

Minimal complete definition

gdef

Methods

gdef :: f a Source #

Instances

GDefault keep (U1 *) Source # 

Methods

gdef :: U1 * a Source #

GDefault False (K1 * i (Update c)) Source # 

Methods

gdef :: K1 * i (Update c) a Source #

GDefault True (K1 * i (Update c)) Source # 

Methods

gdef :: K1 * i (Update c) a Source #

(GDefault keep a, GDefault keep b) => GDefault keep ((:*:) * a b) Source # 

Methods

gdef :: (* :*: a) b a Source #

GDefault keep (K1 * i (IntMap c)) Source # 

Methods

gdef :: K1 * i (IntMap c) a Source #

GDefault keep (K1 * i (Maybe c)) Source # 

Methods

gdef :: K1 * i (Maybe c) a Source #

GDefault keep f => GDefault keep (M1 * i c f) Source # 

Methods

gdef :: M1 * i c f a Source #

(Applicative m, KnownSymbol sym) => GDefault keep (M1 * S (MetaSel (Just Symbol sym) x y z) (K1 * i (VTable m a))) Source # 

Methods

gdef :: M1 * S (MetaSel (Just Symbol sym) x y z) (K1 * i (VTable m a)) a Source #