| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Mischief.ECS.World.Query.QueryFilter
Synopsis
- qfChangedF :: ComponentTicks -> Tick -> Tick -> Bool
- qfAddedF :: ComponentTicks -> Tick -> Tick -> Bool
- data QueryFilter
- = NoFilter
- | QFWith (TypeRep, Maybe Entity)
- | QFWithRelAny TypeRep
- | QFChanged (TypeRep, Maybe Entity) (ComponentTicks -> Tick -> Tick -> Bool)
- | QFChangedRelAny TypeRep (ComponentTicks -> Tick -> Tick -> Bool)
- | QFCheckRaw (TypeRep, Maybe Entity, ErasedCheck)
- | QFCheckRawRelAny (TypeRep, ErasedCheck)
- | QFNot QueryFilter
- | QFAnd QueryFilter QueryFilter
- | QFOr QueryFilter QueryFilter
- data ErasedCheck where
- ErasedCheck :: forall c. Component c => (c -> Bool) -> ErasedCheck
- and' :: [QueryFilter] -> QueryFilter
- filterArchetype :: QueryFilter -> [ComponentId] -> World -> IO Bool
- extractArchetypeFilters :: QueryFilter -> (QueryFilter, QueryFilter)
- isArchetypeFilter :: QueryFilter -> Bool
- preprocessFilter :: QueryFilter -> QueryFilter
- propagateQFNot :: QueryFilter -> QueryFilter
- class IntoQueryFilter qf where
- intoQueryFilter :: qf -> QueryFilter
- newtype With c = With c
- newtype Without c = Without c
- newtype Not c = Not c
- data Or a b = Or a b
- (|.) :: a -> b -> Or a b
- data And a b = And a b
- (&.) :: a -> b -> And a b
- newtype Changed c = Changed c
- newtype Added c = Added c
- newtype Check c = Check (c -> Bool)
- data CheckR e c = CheckR e (c -> Bool)
- withF :: (TypeRep, Maybe Entity, Maybe Any) -> QueryFilter
- addedF :: (TypeRep, Maybe Entity, Maybe Any) -> QueryFilter
- changedF :: (TypeRep, Maybe Entity, Maybe Any) -> QueryFilter
- checkF :: (TypeRep, Maybe Entity, Maybe Any, ErasedCheck) -> QueryFilter
- newtype FilterType = FilterType {}
- newtype CheckFilterType = CheckFilterType {}
- type family InnerC a where ...
Documentation
qfChangedF :: ComponentTicks -> Tick -> Tick -> Bool Source #
data QueryFilter Source #
Constructors
Instances
| Semigroup QueryFilter Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods (<>) :: QueryFilter -> QueryFilter -> QueryFilter # sconcat :: NonEmpty QueryFilter -> QueryFilter # stimes :: Integral b => b -> QueryFilter -> QueryFilter # | |
| EraseIntoStorage QueryFilter QueryFilter Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods erase :: QueryFilter -> QueryFilter Source # | |
| IntoQueryFilter q => EraseIntoStorage q QueryFilter Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods erase :: q -> QueryFilter Source # | |
data ErasedCheck where Source #
Constructors
| ErasedCheck :: forall c. Component c => (c -> Bool) -> ErasedCheck |
Instances
| Show ErasedCheck Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods showsPrec :: Int -> ErasedCheck -> ShowS # show :: ErasedCheck -> String # showList :: [ErasedCheck] -> ShowS # | |
and' :: [QueryFilter] -> QueryFilter Source #
filterArchetype :: QueryFilter -> [ComponentId] -> World -> IO Bool Source #
extractArchetypeFilters :: QueryFilter -> (QueryFilter, QueryFilter) Source #
Extracts archetype-level filters from the bigger filter where possible, to be applied at the start of querying for better performance.
isArchetypeFilter :: QueryFilter -> Bool Source #
class IntoQueryFilter qf where Source #
Methods
intoQueryFilter :: qf -> QueryFilter Source #
Instances
Constructors
| With c |
Instances
| Collectable c FilterType => IntoQueryFilter (With c) Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods intoQueryFilter :: With c -> QueryFilter Source # | |
Constructors
| Without c |
Instances
| Collectable c FilterType => IntoQueryFilter (Without c) Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods intoQueryFilter :: Without c -> QueryFilter Source # | |
Constructors
| Not c |
Instances
| IntoQueryFilter q => IntoQueryFilter (Not q) Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods intoQueryFilter :: Not q -> QueryFilter Source # | |
Constructors
| Or a b |
Instances
| (IntoQueryFilter a, IntoQueryFilter b) => IntoQueryFilter (Or a b) Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods intoQueryFilter :: Or a b -> QueryFilter Source # | |
Constructors
| And a b |
Instances
| (IntoQueryFilter a, IntoQueryFilter b) => IntoQueryFilter (And a b) Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods intoQueryFilter :: And a b -> QueryFilter Source # | |
Constructors
| Changed c |
Instances
| Collectable c FilterType => IntoQueryFilter (Changed c) Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods intoQueryFilter :: Changed c -> QueryFilter Source # | |
Constructors
| Added c |
Instances
| Collectable c FilterType => IntoQueryFilter (Added c) Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods intoQueryFilter :: Added c -> QueryFilter Source # | |
Instances
| Component c => IntoQueryFilter (Check c) Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods intoQueryFilter :: Check c -> QueryFilter Source # | |
Instances
| Component c => IntoQueryFilter (CheckR Entity c) Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods intoQueryFilter :: CheckR Entity c -> QueryFilter Source # | |
| Component c => IntoQueryFilter (CheckR Any c) Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods intoQueryFilter :: CheckR Any c -> QueryFilter Source # | |
checkF :: (TypeRep, Maybe Entity, Maybe Any, ErasedCheck) -> QueryFilter Source #
newtype FilterType Source #
Instances
| Semigroup FilterType Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods (<>) :: FilterType -> FilterType -> FilterType # sconcat :: NonEmpty FilterType -> FilterType # stimes :: Integral b => b -> FilterType -> FilterType # | |
| Component c => EraseIntoStorage (C c) FilterType Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods erase :: C c -> FilterType Source # | |
| Component c => EraseIntoStorage (R c Entity) FilterType Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter | |
| Component c => EraseIntoStorage (R c Any) FilterType Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter | |
newtype CheckFilterType Source #
Constructors
| CheckFilterType | |
Instances
| Semigroup CheckFilterType Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter Methods (<>) :: CheckFilterType -> CheckFilterType -> CheckFilterType # sconcat :: NonEmpty CheckFilterType -> CheckFilterType # stimes :: Integral b => b -> CheckFilterType -> CheckFilterType # | |
| Component c => EraseIntoStorage (C c, c -> Bool) CheckFilterType Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter | |
| Component c => EraseIntoStorage (R c Entity, c -> Bool) CheckFilterType Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter | |
| Component c => EraseIntoStorage (R c Any, c -> Bool) CheckFilterType Source # | |
Defined in Mischief.ECS.World.Query.QueryFilter | |