| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Mischief.ECS.World.Query.Queryable
Documentation
Instances
| Show TypeQuery Source # | |
| Eq TypeQuery Source # | |
| Ord TypeQuery Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
newtype MR (a :: k) b Source #
Constructors
| MR b |
Instances
| Component c => RelQuery 'Exclusive (MR c Any) (Maybe (Result (Rel c))) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| (Component c, Queryable q out) => RelQuery 'Exclusive (MR c (Q q)) (Maybe out) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| Component c => RelQuery 'Inclusive (MR c Any) (Maybe [Result (Rel c)]) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| (Component c, Queryable q out) => RelQuery 'Inclusive (MR c (Q q)) (Maybe [out]) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| RelQuery (RelExclusivity c) (MR c Any) out => Queryable (MR c Any) out Source # | |
| RelQuery (RelExclusivity c) (MR c (Q q)) out => Queryable (MR c (Q q)) out Source # | |
| Component c => Queryable (MR c Entity) (Maybe (Result (Rel c))) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
newtype HasR (a :: k) b Source #
Constructors
| HasR b |
Constructors
| E |
Constructors
| C |
Instances
| Component c => EraseIntoStorage (C c) FilterType Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods erase :: C c -> FilterType Source # | |
| Component c => EraseIntoStorage (C c, c -> Bool) CheckFilterType Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter | |
| Component c => Queryable (C c) (Result c) Source # | |
Constructors
| R b |
Instances
newtype R' (a :: k) b Source #
Constructors
| R' b |
Constructors
| Any |
Instances
Constructors
| Q a |
Instances
| (Component c, Queryable q out) => RelQuery 'Exclusive (R c (Q q)) out Source # | |
| (Component c, Queryable q out) => RelQuery 'Exclusive (MR c (Q q)) (Maybe out) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| (Component c, Queryable q out) => RelQuery 'Inclusive (MR c (Q q)) (Maybe [out]) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| (Component c, Queryable q out) => RelQuery 'Inclusive (R c (Q q)) [out] Source # | |
| (Component c, Queryable q out) => Queryable (HasR c (Q q)) Bool Source # | |
| RelQuery (RelExclusivity c) (MR c (Q q)) out => Queryable (MR c (Q q)) out Source # | |
| RelQuery (RelExclusivity c) (R c (Q q)) out => Queryable (R c (Q q)) out Source # | |
Constructors
| Val a |
Instances
| (Queryable qd out, Mappable MapQueryVal out out') => Queryable (Val qd) out' Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
class Queryable qd output | qd -> output where Source #
Methods
runQueryEntity :: qd -> World -> Entity -> IO (Maybe output) Source #
runQueryInternal :: qd -> [ArchetypeId] -> World -> IO [(Entity, Bool, output)] Source #
Instances
| Queryable E Entity Source # | |
| (Queryable qd out, Mappable MapQueryVal out out') => Queryable (Val qd) out' Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| Component c => Queryable (Has c) Bool Source # | |
| Component c => Queryable (C c) (Result c) Source # | |
| Component c => Queryable (M c) (Maybe (Result c)) Source # | |
| (Queryable q0 o0, Queryable q1 o1) => Queryable (q0, q1) (o0, o1) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| Component c => Queryable (HasR c Entity) Bool Source # | |
| Component c => Queryable (HasR c Any) Bool Source # | |
| (Component c, Queryable q out) => Queryable (HasR c (Q q)) Bool Source # | |
| RelQuery (RelExclusivity c) (MR c Any) out => Queryable (MR c Any) out Source # | |
| RelQuery (RelExclusivity c) (MR c (Q q)) out => Queryable (MR c (Q q)) out Source # | |
| RelQuery (RelExclusivity c) (R c Any) out => Queryable (R c Any) out Source # | |
| RelQuery (RelExclusivity c) (R c (Q q)) out => Queryable (R c (Q q)) out Source # | |
| RelQuery 'Inclusive (R c e) out => Queryable (R' c e) out Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| Component c => Queryable (MR c Entity) (Maybe (Result (Rel c))) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| Component c => Queryable (R c Entity) (Result (Rel c)) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2) => Queryable (q0, q1, q2) (o0, o1, o2) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3) => Queryable (q0, q1, q2, q3) (o0, o1, o2, o3) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3, Queryable q4 o4) => Queryable (q0, q1, q2, q3, q4) (o0, o1, o2, o3, o4) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3, Queryable q4 o4, Queryable q5 o5) => Queryable (q0, q1, q2, q3, q4, q5) (o0, o1, o2, o3, o4, o5) Source # | |
Defined in Mischief.ECS.World.Query.Queryable Methods runQueryEntity :: (q0, q1, q2, q3, q4, q5) -> World -> Entity -> IO (Maybe (o0, o1, o2, o3, o4, o5)) Source # runQueryInternal :: (q0, q1, q2, q3, q4, q5) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2, o3, o4, o5))] Source # queryTypes :: (q0, q1, q2, q3, q4, q5) -> Set (TypeRep, TypeQuery) Source # | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3, Queryable q4 o4, Queryable q5 o5, Queryable q6 o6) => Queryable (q0, q1, q2, q3, q4, q5, q6) (o0, o1, o2, o3, o4, o5, o6) Source # | |
Defined in Mischief.ECS.World.Query.Queryable Methods runQueryEntity :: (q0, q1, q2, q3, q4, q5, q6) -> World -> Entity -> IO (Maybe (o0, o1, o2, o3, o4, o5, o6)) Source # runQueryInternal :: (q0, q1, q2, q3, q4, q5, q6) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2, o3, o4, o5, o6))] Source # queryTypes :: (q0, q1, q2, q3, q4, q5, q6) -> Set (TypeRep, TypeQuery) Source # | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3, Queryable q4 o4, Queryable q5 o5, Queryable q6 o6, Queryable q7 o7) => Queryable (q0, q1, q2, q3, q4, q5, q6, q7) (o0, o1, o2, o3, o4, o5, o6, o7) Source # | |
Defined in Mischief.ECS.World.Query.Queryable Methods runQueryEntity :: (q0, q1, q2, q3, q4, q5, q6, q7) -> World -> Entity -> IO (Maybe (o0, o1, o2, o3, o4, o5, o6, o7)) Source # runQueryInternal :: (q0, q1, q2, q3, q4, q5, q6, q7) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2, o3, o4, o5, o6, o7))] Source # queryTypes :: (q0, q1, q2, q3, q4, q5, q6, q7) -> Set (TypeRep, TypeQuery) Source # | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3, Queryable q4 o4, Queryable q5 o5, Queryable q6 o6, Queryable q7 o7, Queryable q8 o8) => Queryable (q0, q1, q2, q3, q4, q5, q6, q7, q8) (o0, o1, o2, o3, o4, o5, o6, o7, o8) Source # | |
Defined in Mischief.ECS.World.Query.Queryable Methods runQueryEntity :: (q0, q1, q2, q3, q4, q5, q6, q7, q8) -> World -> Entity -> IO (Maybe (o0, o1, o2, o3, o4, o5, o6, o7, o8)) Source # runQueryInternal :: (q0, q1, q2, q3, q4, q5, q6, q7, q8) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2, o3, o4, o5, o6, o7, o8))] Source # queryTypes :: (q0, q1, q2, q3, q4, q5, q6, q7, q8) -> Set (TypeRep, TypeQuery) Source # | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3, Queryable q4 o4, Queryable q5 o5, Queryable q6 o6, Queryable q7 o7, Queryable q8 o8, Queryable q9 o9) => Queryable (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9) (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9) Source # | |
Defined in Mischief.ECS.World.Query.Queryable Methods runQueryEntity :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9) -> World -> Entity -> IO (Maybe (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9)) Source # runQueryInternal :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9))] Source # queryTypes :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9) -> Set (TypeRep, TypeQuery) Source # | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3, Queryable q4 o4, Queryable q5 o5, Queryable q6 o6, Queryable q7 o7, Queryable q8 o8, Queryable q9 o9, Queryable q10 o10) => Queryable (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10) (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10) Source # | |
Defined in Mischief.ECS.World.Query.Queryable Methods runQueryEntity :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10) -> World -> Entity -> IO (Maybe (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10)) Source # runQueryInternal :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10))] Source # queryTypes :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10) -> Set (TypeRep, TypeQuery) Source # | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3, Queryable q4 o4, Queryable q5 o5, Queryable q6 o6, Queryable q7 o7, Queryable q8 o8, Queryable q9 o9, Queryable q10 o10, Queryable q11 o11) => Queryable (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11) (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11) Source # | |
Defined in Mischief.ECS.World.Query.Queryable Methods runQueryEntity :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11) -> World -> Entity -> IO (Maybe (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11)) Source # runQueryInternal :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11))] Source # queryTypes :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11) -> Set (TypeRep, TypeQuery) Source # | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3, Queryable q4 o4, Queryable q5 o5, Queryable q6 o6, Queryable q7 o7, Queryable q8 o8, Queryable q9 o9, Queryable q10 o10, Queryable q11 o11, Queryable q12 o12) => Queryable (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12) (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12) Source # | |
Defined in Mischief.ECS.World.Query.Queryable Methods runQueryEntity :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12) -> World -> Entity -> IO (Maybe (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12)) Source # runQueryInternal :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12))] Source # queryTypes :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12) -> Set (TypeRep, TypeQuery) Source # | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3, Queryable q4 o4, Queryable q5 o5, Queryable q6 o6, Queryable q7 o7, Queryable q8 o8, Queryable q9 o9, Queryable q10 o10, Queryable q11 o11, Queryable q12 o12, Queryable q13 o13) => Queryable (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13) (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12, o13) Source # | |
Defined in Mischief.ECS.World.Query.Queryable Methods runQueryEntity :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13) -> World -> Entity -> IO (Maybe (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12, o13)) Source # runQueryInternal :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12, o13))] Source # queryTypes :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13) -> Set (TypeRep, TypeQuery) Source # | |
| (Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3, Queryable q4 o4, Queryable q5 o5, Queryable q6 o6, Queryable q7 o7, Queryable q8 o8, Queryable q9 o9, Queryable q10 o10, Queryable q11 o11, Queryable q12 o12, Queryable q13 o13, Queryable q14 o14) => Queryable (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14) (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12, o13, o14) Source # | |
Defined in Mischief.ECS.World.Query.Queryable Methods runQueryEntity :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14) -> World -> Entity -> IO (Maybe (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12, o13, o14)) Source # runQueryInternal :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12, o13, o14))] Source # queryTypes :: (q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14) -> Set (TypeRep, TypeQuery) Source # | |
type family IsComponentC c where ... Source #
Equations
| IsComponentC Entity = HFalse | |
| IsComponentC a = HTrue |
class RelQuery (exclusive :: Exclusivity) qd output | qd exclusive -> output where Source #
Methods
relRunQueryEntity :: qd -> World -> Entity -> IO (Maybe output) Source #
relRunQueryInternal :: qd -> [ArchetypeId] -> World -> IO [(Entity, Bool, output)] Source #
Instances
| (Component c, Queryable q out) => RelQuery 'Exclusive (R c (Q q)) out Source # | |
| Component c => RelQuery 'Exclusive (MR c Any) (Maybe (Result (Rel c))) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| (Component c, Queryable q out) => RelQuery 'Exclusive (MR c (Q q)) (Maybe out) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| Component c => RelQuery 'Exclusive (R c Any) (Result (Rel c)) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| Component c => RelQuery 'Inclusive (MR c Any) (Maybe [Result (Rel c)]) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| (Component c, Queryable q out) => RelQuery 'Inclusive (MR c (Q q)) (Maybe [out]) Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| Component c => RelQuery 'Inclusive (R c Any) [Result (Rel c)] Source # | |
Defined in Mischief.ECS.World.Query.Queryable | |
| (Component c, Queryable q out) => RelQuery 'Inclusive (R c (Q q)) [out] Source # | |