pub trait QueryBase:
Debug
+ Default
+ Sized {
type Key: Clone + Debug + Hash + Eq;
type Value: Clone + Debug;
type Storage;
type Group: QueryGroup<GroupStorage = Self::GroupStorage>;
type GroupStorage;
const QUERY_INDEX: u16;
const QUERY_NAME: &'static str;
// Required method
fn query_storage<'a>(
group_storage: &'a Self::GroupStorage,
) -> &'a Arc<Self::Storage>;
}Expand description
Trait implements by all of the “special types” associated with each of your queries.
Required Associated Constants§
Sourceconst QUERY_INDEX: u16
const QUERY_INDEX: u16
A unique index identifying this query within the group.
Sourceconst QUERY_NAME: &'static str
const QUERY_NAME: &'static str
Name of the query method (e.g., foo)
Required Associated Types§
Sourcetype Key: Clone + Debug + Hash + Eq
type Key: Clone + Debug + Hash + Eq
Type that you you give as a parameter – for queries with zero or more than one input, this will be a tuple.
Sourcetype Group: QueryGroup<GroupStorage = Self::GroupStorage>
type Group: QueryGroup<GroupStorage = Self::GroupStorage>
Associate query group struct.
Sourcetype GroupStorage
type GroupStorage
Generated struct that contains storage for all queries in a group.
Required Methods§
Sourcefn query_storage<'a>(
group_storage: &'a Self::GroupStorage,
) -> &'a Arc<Self::Storage>
fn query_storage<'a>( group_storage: &'a Self::GroupStorage, ) -> &'a Arc<Self::Storage>
Extact storage for this query from the storage for its group.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.