ECSTASY
All in the name
Loading...
Searching...
No Matches
queryable_type.hpp
Go to the documentation of this file.
1
11
12#ifndef ECSTASY_REGISTRY_CONCEPTS_QUERYABLETYPE_HPP_
13#define ECSTASY_REGISTRY_CONCEPTS_QUERYABLETYPE_HPP_
14
20
21namespace ecstasy
22{
41 template <typename C>
44 };
45
47 template <query::Queryable Q>
49 struct queryable_type<const Q> {
50 using type = const typename queryable_type<Q>::type;
51 };
52
54 template <std::derived_from<IResource> R>
55 requires query::Queryable<R>
56 struct queryable_type<R> {
57 using type = R;
58 };
59
61 template <IsStorage S>
62 requires query::Queryable<S>
63 struct queryable_type<S> {
64 using type = S;
65 };
66
68 template <ecstasy::query::Modifier M>
69 struct queryable_type<M> {
70 using type = M;
71 };
72
74 template <RegistryModifier M>
75 struct queryable_type<M> {
76 using type = typename M::Modifier;
77 };
78
87 template <typename C>
89} // namespace ecstasy
90
91#endif /* !ECSTASY_REGISTRY_CONCEPTS_QUERYABLETYPE_HPP_ */
Base class of all registry resources.
Contains the concepts for queryable objects.
Defines a RegistryModifier concept.
Storage concepts and utilities.
Defines a type that can be queried in a const context.
Definition Queryable.hpp:68
Defines a type that can be queried.
Contains the concepts for query modifiers.
Namespace containing all symbols specific to ecstasy.
Definition ecstasy.hpp:30
typename getStorageTypeImpl< C >::type getStorageType
Get the storage type to use for a component.
typename queryable_type< C >::type queryable_type_t
Helper to queryable_type<C>::type.
const typename queryable_type< Q >::type type
Try to get the type of a queryable associated to a type stored in the registry (component,...
getStorageType< C > type