mischief-ecs
Safe HaskellNone
LanguageGHC2024

Mischief.ECS.World.Query.Queryable

Documentation

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 #

queryTypes :: qd -> Set (TypeRep, TypeQuery) Source #

Instances

Instances details
Queryable E Entity Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

(Queryable qd out, Mappable MapQueryVal out out') => Queryable (Val qd) out' Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

runQueryEntity :: Val qd -> World -> Entity -> IO (Maybe out') Source #

runQueryInternal :: Val qd -> [ArchetypeId] -> World -> IO [(Entity, Bool, out')] Source #

queryTypes :: Val qd -> Set (TypeRep, TypeQuery) Source #

Component c => Queryable (Has c) Bool Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Component c => Queryable (C c) (Result c) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Component c => Queryable (M c) (Maybe (Result c)) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

(Queryable q0 o0, Queryable q1 o1) => Queryable (q0, q1) (o0, o1) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

runQueryEntity :: (q0, q1) -> World -> Entity -> IO (Maybe (o0, o1)) Source #

runQueryInternal :: (q0, q1) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1))] Source #

queryTypes :: (q0, q1) -> Set (TypeRep, TypeQuery) Source #

Component c => Queryable (HasR c Entity) Bool Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Component c => Queryable (HasR c Any) Bool Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

(Component c, Queryable q out) => Queryable (HasR c (Q q)) Bool Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

(Component c, Queryable q out, Collectable f QueryFilter) => Queryable (HasR c (Q' q f)) Bool Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

RelQuery (RelExclusivity c) (MR c Any) out => Queryable (MR c Any) out Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

RelQuery (RelExclusivity c) (MR c (Q q)) out => Queryable (MR c (Q q)) out Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

runQueryEntity :: MR c (Q q) -> World -> Entity -> IO (Maybe out) Source #

runQueryInternal :: MR c (Q q) -> [ArchetypeId] -> World -> IO [(Entity, Bool, out)] Source #

queryTypes :: MR c (Q q) -> Set (TypeRep, TypeQuery) Source #

RelQuery (RelExclusivity c) (MR c (Q' q f)) out => Queryable (MR c (Q' q f)) out Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

runQueryEntity :: MR c (Q' q f) -> World -> Entity -> IO (Maybe out) Source #

runQueryInternal :: MR c (Q' q f) -> [ArchetypeId] -> World -> IO [(Entity, Bool, out)] Source #

queryTypes :: MR c (Q' q f) -> Set (TypeRep, TypeQuery) Source #

RelQuery (RelExclusivity c) (R c Any) out => Queryable (R c Any) out Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

RelQuery (RelExclusivity c) (R c (Q q)) out => Queryable (R c (Q q)) out Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

runQueryEntity :: R c (Q q) -> World -> Entity -> IO (Maybe out) Source #

runQueryInternal :: R c (Q q) -> [ArchetypeId] -> World -> IO [(Entity, Bool, out)] Source #

queryTypes :: R c (Q q) -> Set (TypeRep, TypeQuery) Source #

RelQuery (RelExclusivity c) (R c (Q' q f)) out => Queryable (R c (Q' q f)) out Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

runQueryEntity :: R c (Q' q f) -> World -> Entity -> IO (Maybe out) Source #

runQueryInternal :: R c (Q' q f) -> [ArchetypeId] -> World -> IO [(Entity, Bool, out)] Source #

queryTypes :: R c (Q' q f) -> Set (TypeRep, TypeQuery) Source #

RelQuery 'Inclusive (R c e) out => Queryable (R' c e) out Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

runQueryEntity :: R' c e -> World -> Entity -> IO (Maybe out) Source #

runQueryInternal :: R' c e -> [ArchetypeId] -> World -> IO [(Entity, Bool, out)] Source #

queryTypes :: R' c e -> Set (TypeRep, TypeQuery) Source #

Component c => Queryable (MR c Entity) (Maybe (Result (Rel c))) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Component c => Queryable (R c Entity) (Result (Rel c)) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

(Queryable q0 o0, Queryable q1 o1, Queryable q2 o2) => Queryable (q0, q1, q2) (o0, o1, o2) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

runQueryEntity :: (q0, q1, q2) -> World -> Entity -> IO (Maybe (o0, o1, o2)) Source #

runQueryInternal :: (q0, q1, q2) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2))] Source #

queryTypes :: (q0, q1, q2) -> Set (TypeRep, TypeQuery) Source #

(Queryable q0 o0, Queryable q1 o1, Queryable q2 o2, Queryable q3 o3) => Queryable (q0, q1, q2, q3) (o0, o1, o2, o3) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

runQueryEntity :: (q0, q1, q2, q3) -> World -> Entity -> IO (Maybe (o0, o1, o2, o3)) Source #

runQueryInternal :: (q0, q1, q2, q3) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2, o3))] Source #

queryTypes :: (q0, q1, q2, q3) -> Set (TypeRep, TypeQuery) Source #

(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 # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

runQueryEntity :: (q0, q1, q2, q3, q4) -> World -> Entity -> IO (Maybe (o0, o1, o2, o3, o4)) Source #

runQueryInternal :: (q0, q1, q2, q3, q4) -> [ArchetypeId] -> World -> IO [(Entity, Bool, (o0, o1, o2, o3, o4))] Source #

queryTypes :: (q0, q1, q2, q3, q4) -> Set (TypeRep, TypeQuery) Source #

(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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 #

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 #

relQueryTypes :: qd -> Set (TypeRep, TypeQuery) Source #

Instances

Instances details
(Component c, Queryable q out) => RelQuery 'Exclusive (R c (Q q)) out Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

relRunQueryEntity :: R c (Q q) -> World -> Entity -> IO (Maybe out) Source #

relRunQueryInternal :: R c (Q q) -> [ArchetypeId] -> World -> IO [(Entity, Bool, out)] Source #

relQueryTypes :: R c (Q q) -> Set (TypeRep, TypeQuery) Source #

(Component c, Queryable q out, Collectable f QueryFilter) => RelQuery 'Exclusive (R c (Q' q f)) out Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

relRunQueryEntity :: R c (Q' q f) -> World -> Entity -> IO (Maybe out) Source #

relRunQueryInternal :: R c (Q' q f) -> [ArchetypeId] -> World -> IO [(Entity, Bool, out)] Source #

relQueryTypes :: R c (Q' q f) -> Set (TypeRep, TypeQuery) Source #

Component c => RelQuery 'Exclusive (MR c Any) (Maybe (Result (Rel c))) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

(Component c, Queryable q out) => RelQuery 'Exclusive (MR c (Q q)) (Maybe out) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

relRunQueryEntity :: MR c (Q q) -> World -> Entity -> IO (Maybe (Maybe out)) Source #

relRunQueryInternal :: MR c (Q q) -> [ArchetypeId] -> World -> IO [(Entity, Bool, Maybe out)] Source #

relQueryTypes :: MR c (Q q) -> Set (TypeRep, TypeQuery) Source #

(Component c, Queryable q out, Collectable f QueryFilter) => RelQuery 'Exclusive (MR c (Q' q f)) (Maybe out) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

relRunQueryEntity :: MR c (Q' q f) -> World -> Entity -> IO (Maybe (Maybe out)) Source #

relRunQueryInternal :: MR c (Q' q f) -> [ArchetypeId] -> World -> IO [(Entity, Bool, Maybe out)] Source #

relQueryTypes :: MR c (Q' q f) -> Set (TypeRep, TypeQuery) Source #

Component c => RelQuery 'Exclusive (R c Any) (Result (Rel c)) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Component c => RelQuery 'Inclusive (MR c Any) (Maybe [Result (Rel c)]) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

(Component c, Queryable q out) => RelQuery 'Inclusive (MR c (Q q)) (Maybe [out]) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

relRunQueryEntity :: MR c (Q q) -> World -> Entity -> IO (Maybe (Maybe [out])) Source #

relRunQueryInternal :: MR c (Q q) -> [ArchetypeId] -> World -> IO [(Entity, Bool, Maybe [out])] Source #

relQueryTypes :: MR c (Q q) -> Set (TypeRep, TypeQuery) Source #

(Component c, Queryable q out, Collectable f QueryFilter) => RelQuery 'Inclusive (MR c (Q' q f)) (Maybe [out]) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

relRunQueryEntity :: MR c (Q' q f) -> World -> Entity -> IO (Maybe (Maybe [out])) Source #

relRunQueryInternal :: MR c (Q' q f) -> [ArchetypeId] -> World -> IO [(Entity, Bool, Maybe [out])] Source #

relQueryTypes :: MR c (Q' q f) -> Set (TypeRep, TypeQuery) Source #

Component c => RelQuery 'Inclusive (R c Any) [Result (Rel c)] Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

(Component c, Queryable q out) => RelQuery 'Inclusive (R c (Q q)) [out] Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

relRunQueryEntity :: R c (Q q) -> World -> Entity -> IO (Maybe [out]) Source #

relRunQueryInternal :: R c (Q q) -> [ArchetypeId] -> World -> IO [(Entity, Bool, [out])] Source #

relQueryTypes :: R c (Q q) -> Set (TypeRep, TypeQuery) Source #

(Component c, Queryable q out, Collectable f QueryFilter) => RelQuery 'Inclusive (R c (Q' q f)) [out] Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Methods

relRunQueryEntity :: R c (Q' q f) -> World -> Entity -> IO (Maybe [out]) Source #

relRunQueryInternal :: R c (Q' q f) -> [ArchetypeId] -> World -> IO [(Entity, Bool, [out])] Source #

relQueryTypes :: R c (Q' q f) -> Set (TypeRep, TypeQuery) Source #

addedChanged' :: forall m w. MonadSystem w m => (ComponentTicks -> Tick -> Tick -> Bool) -> ComponentId -> Entity -> m Bool Source #