module Aztecs.ECS.Query.Dynamic.Reader.Class (DynamicQueryReaderF (..)) where
import Aztecs.ECS.Component
import Aztecs.ECS.Entity
class (Functor f) => DynamicQueryReaderF f where
entity :: f EntityID
fetchDyn :: (Component a) => ComponentID -> f a
fetchMaybeDyn :: (Component a) => ComponentID -> f (Maybe a)
fetchMaybeDyn ComponentID
cId = a -> Maybe a
forall a. a -> Maybe a
Just (a -> Maybe a) -> f a -> f (Maybe a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ComponentID -> f a
forall a. Component a => ComponentID -> f a
forall (f :: * -> *) a.
(DynamicQueryReaderF f, Component a) =>
ComponentID -> f a
fetchDyn ComponentID
cId