pub struct QueryState<Q, F = ()>where
Q: WorldQuery,
F: ReadOnlyWorldQuery,{ /* private fields */ }Expand description
Provides scoped access to a World state according to a given WorldQuery and query filter.
Implementations§
Source§impl<Q, F> QueryState<Q, F>where
Q: WorldQuery,
F: ReadOnlyWorldQuery,
impl<Q, F> QueryState<Q, F>where
Q: WorldQuery,
F: ReadOnlyWorldQuery,
Sourcepub fn as_readonly(
&self,
) -> &QueryState<<Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly>
pub fn as_readonly( &self, ) -> &QueryState<<Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly>
Converts this QueryState reference to a QueryState that does not access anything mutably.
Sourcepub fn as_nop(&self) -> &QueryState<NopWorldQuery<Q>, F>
pub fn as_nop(&self) -> &QueryState<NopWorldQuery<Q>, F>
Converts this QueryState reference to a QueryState that does not return any data
which can be faster.
This doesn’t use NopWorldQuery as it loses filter functionality, for example
NopWorldQuery<Changed<T>> is functionally equivalent to With<T>.
Source§impl<Q, F> QueryState<Q, F>where
Q: WorldQuery,
F: ReadOnlyWorldQuery,
impl<Q, F> QueryState<Q, F>where
Q: WorldQuery,
F: ReadOnlyWorldQuery,
Sourcepub fn new(world: &mut World) -> QueryState<Q, F>
pub fn new(world: &mut World) -> QueryState<Q, F>
Creates a new QueryState from a given World and inherits the result of world.id().
Sourcepub fn is_empty(&self, world: &World, last_run: Tick, this_run: Tick) -> bool
pub fn is_empty(&self, world: &World, last_run: Tick, this_run: Tick) -> bool
Checks if the query is empty for the given World, where the last change and current tick are given.
Sourcepub fn update_archetypes(&mut self, world: &World)
pub fn update_archetypes(&mut self, world: &World)
Updates the state’s internal view of the World’s archetypes. If this is not called before querying data,
the results may not accurately reflect what is in the world.
This is only required if a manual method (such as Self::get_manual) is being called, and it only needs to
be called if the world has been structurally mutated (i.e. added/removed a component or resource). Users using
non-manual methods such as QueryState::get do not need to call this as it will be automatically called for them.
If you have an UnsafeWorldCell instead of &World, consider using QueryState::update_archetypes_unsafe_world_cell.
§Panics
If world does not match the one used to call QueryState::new for this instance.
Sourcepub fn update_archetypes_unsafe_world_cell(
&mut self,
world: UnsafeWorldCell<'_>,
)
pub fn update_archetypes_unsafe_world_cell( &mut self, world: UnsafeWorldCell<'_>, )
Updates the state’s internal view of the world’s archetypes. If this is not called before querying data,
the results may not accurately reflect what is in the world.
This is only required if a manual method (such as Self::get_manual) is being called, and it only needs to
be called if the world has been structurally mutated (i.e. added/removed a component or resource). Users using
non-manual methods such as QueryState::get do not need to call this as it will be automatically called for them.
§Note
This method only accesses world metadata.
§Panics
If world does not match the one used to call QueryState::new for this instance.
Sourcepub fn validate_world(&self, world_id: WorldId)
pub fn validate_world(&self, world_id: WorldId)
Sourcepub fn new_archetype(&mut self, archetype: &Archetype)
pub fn new_archetype(&mut self, archetype: &Archetype)
Update the current QueryState with information from the provided Archetype
(if applicable, i.e. if the archetype has any intersecting ComponentId with the current QueryState).
Sourcepub fn get<'w>(
&mut self,
world: &'w World,
entity: Entity,
) -> Result<<<Q as WorldQuery>::ReadOnly as WorldQuery>::Item<'w>, QueryEntityError>
pub fn get<'w>( &mut self, world: &'w World, entity: Entity, ) -> Result<<<Q as WorldQuery>::ReadOnly as WorldQuery>::Item<'w>, QueryEntityError>
Gets the query result for the given World and Entity.
This can only be called for read-only queries, see Self::get_mut for write-queries.
Sourcepub fn get_many<'w, const N: usize>(
&mut self,
world: &'w World,
entities: [Entity; N],
) -> Result<[<<Q as WorldQuery>::ReadOnly as WorldQuery>::Item<'w>; N], QueryEntityError>
pub fn get_many<'w, const N: usize>( &mut self, world: &'w World, entities: [Entity; N], ) -> Result<[<<Q as WorldQuery>::ReadOnly as WorldQuery>::Item<'w>; N], QueryEntityError>
Returns the read-only query results for the given array of Entity.
In case of a nonexisting entity or mismatched component, a QueryEntityError is
returned instead.
Note that the unlike QueryState::get_many_mut, the entities passed in do not need to be unique.
§Examples
use bevy_ecs::prelude::*;
use bevy_ecs::query::QueryEntityError;
#[derive(Component, PartialEq, Debug)]
struct A(usize);
let mut world = World::new();
let entity_vec: Vec<Entity> = (0..3).map(|i|world.spawn(A(i)).id()).collect();
let entities: [Entity; 3] = entity_vec.try_into().unwrap();
world.spawn(A(73));
let mut query_state = world.query::<&A>();
let component_values = query_state.get_many(&world, entities).unwrap();
assert_eq!(component_values, [&A(0), &A(1), &A(2)]);
let wrong_entity = Entity::from_raw(365);
assert_eq!(query_state.get_many(&world, [wrong_entity]), Err(QueryEntityError::NoSuchEntity(wrong_entity)));Sourcepub fn get_mut<'w>(
&mut self,
world: &'w mut World,
entity: Entity,
) -> Result<<Q as WorldQuery>::Item<'w>, QueryEntityError>
pub fn get_mut<'w>( &mut self, world: &'w mut World, entity: Entity, ) -> Result<<Q as WorldQuery>::Item<'w>, QueryEntityError>
Sourcepub fn get_many_mut<'w, const N: usize>(
&mut self,
world: &'w mut World,
entities: [Entity; N],
) -> Result<[<Q as WorldQuery>::Item<'w>; N], QueryEntityError>
pub fn get_many_mut<'w, const N: usize>( &mut self, world: &'w mut World, entities: [Entity; N], ) -> Result<[<Q as WorldQuery>::Item<'w>; N], QueryEntityError>
Returns the query results for the given array of Entity.
In case of a nonexisting entity or mismatched component, a QueryEntityError is
returned instead.
use bevy_ecs::prelude::*;
use bevy_ecs::query::QueryEntityError;
#[derive(Component, PartialEq, Debug)]
struct A(usize);
let mut world = World::new();
let entities: Vec<Entity> = (0..3).map(|i|world.spawn(A(i)).id()).collect();
let entities: [Entity; 3] = entities.try_into().unwrap();
world.spawn(A(73));
let mut query_state = world.query::<&mut A>();
let mut mutable_component_values = query_state.get_many_mut(&mut world, entities).unwrap();
for mut a in &mut mutable_component_values {
a.0 += 5;
}
let component_values = query_state.get_many(&world, entities).unwrap();
assert_eq!(component_values, [&A(5), &A(6), &A(7)]);
let wrong_entity = Entity::from_raw(57);
let invalid_entity = world.spawn_empty().id();
assert_eq!(query_state.get_many_mut(&mut world, [wrong_entity]).unwrap_err(), QueryEntityError::NoSuchEntity(wrong_entity));
assert_eq!(query_state.get_many_mut(&mut world, [invalid_entity]).unwrap_err(), QueryEntityError::QueryDoesNotMatch(invalid_entity));
assert_eq!(query_state.get_many_mut(&mut world, [entities[0], entities[0]]).unwrap_err(), QueryEntityError::AliasedMutability(entities[0]));Sourcepub fn get_manual<'w>(
&self,
world: &'w World,
entity: Entity,
) -> Result<<<Q as WorldQuery>::ReadOnly as WorldQuery>::Item<'w>, QueryEntityError>
pub fn get_manual<'w>( &self, world: &'w World, entity: Entity, ) -> Result<<<Q as WorldQuery>::ReadOnly as WorldQuery>::Item<'w>, QueryEntityError>
Gets the query result for the given World and Entity.
This method is slightly more efficient than QueryState::get in some situations, since
it does not update this instance’s internal cache. This method will return an error if entity
belongs to an archetype that has not been cached.
To ensure that the cache is up to date, call QueryState::update_archetypes before this method.
The cache is also updated in QueryState::new, QueryState::get, or any method with mutable
access to self.
This can only be called for read-only queries, see Self::get_mut for mutable queries.
Sourcepub unsafe fn get_unchecked<'w>(
&mut self,
world: UnsafeWorldCell<'w>,
entity: Entity,
) -> Result<<Q as WorldQuery>::Item<'w>, QueryEntityError>
pub unsafe fn get_unchecked<'w>( &mut self, world: UnsafeWorldCell<'w>, entity: Entity, ) -> Result<<Q as WorldQuery>::Item<'w>, QueryEntityError>
Sourcepub fn iter<'w, 's>(
&'s mut self,
world: &'w World,
) -> QueryIter<'w, 's, <Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly> ⓘ
pub fn iter<'w, 's>( &'s mut self, world: &'w World, ) -> QueryIter<'w, 's, <Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly> ⓘ
Returns an Iterator over the query results for the given World.
This can only be called for read-only queries, see Self::iter_mut for write-queries.
Sourcepub fn iter_manual<'w, 's>(
&'s self,
world: &'w World,
) -> QueryIter<'w, 's, <Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly> ⓘ
pub fn iter_manual<'w, 's>( &'s self, world: &'w World, ) -> QueryIter<'w, 's, <Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly> ⓘ
Returns an Iterator over the query results for the given World without updating the query’s archetypes.
Archetypes must be manually updated before by using Self::update_archetypes.
This can only be called for read-only queries.
Sourcepub fn iter_combinations<'w, 's, const K: usize>(
&'s mut self,
world: &'w World,
) -> QueryCombinationIter<'w, 's, <Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly, K> ⓘ
pub fn iter_combinations<'w, 's, const K: usize>( &'s mut self, world: &'w World, ) -> QueryCombinationIter<'w, 's, <Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly, K> ⓘ
Returns an Iterator over all possible combinations of K query results without repetition.
This can only be called for read-only queries.
A combination is an arrangement of a collection of items where order does not matter.
K is the number of items that make up each subset, and the number of items returned by the iterator.
N is the number of total entities output by query.
For example, given the list [1, 2, 3, 4], where K is 2, the combinations without repeats are
[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4].
And in this case, N would be defined as 4 since the size of the input list is 4.
For combinations of size K of query taking N inputs, you will get:
- if
K == N: one combination of all query results - if
K < N: all possibleK-sized combinations of query results, without repetition - if
K > N: empty set (noK-sized combinations exist)
The iter_combinations method does not guarantee order of iteration.
This can only be called for read-only queries, see Self::iter_combinations_mut for
write-queries.
Sourcepub fn iter_combinations_mut<'w, 's, const K: usize>(
&'s mut self,
world: &'w mut World,
) -> QueryCombinationIter<'w, 's, Q, F, K> ⓘ
pub fn iter_combinations_mut<'w, 's, const K: usize>( &'s mut self, world: &'w mut World, ) -> QueryCombinationIter<'w, 's, Q, F, K> ⓘ
Returns an Iterator over all possible combinations of K query results without repetition.
A combination is an arrangement of a collection of items where order does not matter.
K is the number of items that make up each subset, and the number of items returned by the iterator.
N is the number of total entities output by query.
For example, given the list [1, 2, 3, 4], where K is 2, the combinations without repeats are
[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4].
And in this case, N would be defined as 4 since the size of the input list is 4.
For combinations of size K of query taking N inputs, you will get:
- if
K == N: one combination of all query results - if
K < N: all possibleK-sized combinations of query results, without repetition - if
K > N: empty set (noK-sized combinations exist)
The iter_combinations_mut method does not guarantee order of iteration.
Sourcepub fn iter_many<'w, 's, EntityList>(
&'s mut self,
world: &'w World,
entities: EntityList,
) -> QueryManyIter<'w, 's, <Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly, <EntityList as IntoIterator>::IntoIter> ⓘ
pub fn iter_many<'w, 's, EntityList>( &'s mut self, world: &'w World, entities: EntityList, ) -> QueryManyIter<'w, 's, <Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly, <EntityList as IntoIterator>::IntoIter> ⓘ
Returns an Iterator over the read-only query items generated from an Entity list.
Items are returned in the order of the list of entities. Entities that don’t match the query are skipped.
§See also
iter_many_mutto get mutable query items.
Sourcepub fn iter_many_manual<'w, 's, EntityList>(
&'s self,
world: &'w World,
entities: EntityList,
) -> QueryManyIter<'w, 's, <Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly, <EntityList as IntoIterator>::IntoIter> ⓘ
pub fn iter_many_manual<'w, 's, EntityList>( &'s self, world: &'w World, entities: EntityList, ) -> QueryManyIter<'w, 's, <Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly, <EntityList as IntoIterator>::IntoIter> ⓘ
Returns an Iterator over the read-only query items generated from an Entity list.
Items are returned in the order of the list of entities. Entities that don’t match the query are skipped.
If world archetypes changed since Self::update_archetypes was last called,
this will skip entities contained in new archetypes.
This can only be called for read-only queries.
§See also
iter_manyto update archetypes.iter_manualto iterate over all query items.
Sourcepub fn iter_many_mut<'w, 's, EntityList>(
&'s mut self,
world: &'w mut World,
entities: EntityList,
) -> QueryManyIter<'w, 's, Q, F, <EntityList as IntoIterator>::IntoIter> ⓘ
pub fn iter_many_mut<'w, 's, EntityList>( &'s mut self, world: &'w mut World, entities: EntityList, ) -> QueryManyIter<'w, 's, Q, F, <EntityList as IntoIterator>::IntoIter> ⓘ
Returns an iterator over the query items generated from an Entity list.
Items are returned in the order of the list of entities. Entities that don’t match the query are skipped.
Sourcepub unsafe fn iter_unchecked<'w, 's>(
&'s mut self,
world: UnsafeWorldCell<'w>,
) -> QueryIter<'w, 's, Q, F> ⓘ
pub unsafe fn iter_unchecked<'w, 's>( &'s mut self, world: UnsafeWorldCell<'w>, ) -> QueryIter<'w, 's, Q, F> ⓘ
Sourcepub unsafe fn iter_combinations_unchecked<'w, 's, const K: usize>(
&'s mut self,
world: UnsafeWorldCell<'w>,
) -> QueryCombinationIter<'w, 's, Q, F, K> ⓘ
pub unsafe fn iter_combinations_unchecked<'w, 's, const K: usize>( &'s mut self, world: UnsafeWorldCell<'w>, ) -> QueryCombinationIter<'w, 's, Q, F, K> ⓘ
Returns an Iterator over all possible combinations of K query results for the
given World without repetition.
This can only be called for read-only queries.
§Safety
This does not check for mutable query correctness. To be safe, make sure mutable queries have unique access to the components they query.
Sourcepub fn for_each<'w, FN>(&mut self, world: &'w World, func: FN)
pub fn for_each<'w, FN>(&mut self, world: &'w World, func: FN)
Runs func on each query result for the given World. This is faster than the equivalent
iter() method, but cannot be chained like a normal Iterator.
This can only be called for read-only queries, see Self::for_each_mut for write-queries.
Sourcepub fn for_each_mut<'w, FN>(&mut self, world: &'w mut World, func: FN)
pub fn for_each_mut<'w, FN>(&mut self, world: &'w mut World, func: FN)
Sourcepub unsafe fn for_each_unchecked<'w, FN>(
&mut self,
world: UnsafeWorldCell<'w>,
func: FN,
)
pub unsafe fn for_each_unchecked<'w, FN>( &mut self, world: UnsafeWorldCell<'w>, func: FN, )
Sourcepub fn par_iter<'w, 's>(
&'s mut self,
world: &'w World,
) -> QueryParIter<'w, 's, <Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly>
pub fn par_iter<'w, 's>( &'s mut self, world: &'w World, ) -> QueryParIter<'w, 's, <Q as WorldQuery>::ReadOnly, <F as WorldQuery>::ReadOnly>
Returns a parallel iterator over the query results for the given World.
This can only be called for read-only queries, see par_iter_mut for write-queries.
Sourcepub fn par_iter_mut<'w, 's>(
&'s mut self,
world: &'w mut World,
) -> QueryParIter<'w, 's, Q, F>
pub fn par_iter_mut<'w, 's>( &'s mut self, world: &'w mut World, ) -> QueryParIter<'w, 's, Q, F>
Sourcepub fn single<'w>(
&mut self,
world: &'w World,
) -> <<Q as WorldQuery>::ReadOnly as WorldQuery>::Item<'w>
pub fn single<'w>( &mut self, world: &'w World, ) -> <<Q as WorldQuery>::ReadOnly as WorldQuery>::Item<'w>
Returns a single immutable query result when there is exactly one entity matching the query.
This can only be called for read-only queries,
see single_mut for write-queries.
§Panics
Panics if the number of query results is not exactly one. Use
get_single to return a Result instead of panicking.
Sourcepub fn get_single<'w>(
&mut self,
world: &'w World,
) -> Result<<<Q as WorldQuery>::ReadOnly as WorldQuery>::Item<'w>, QuerySingleError>
pub fn get_single<'w>( &mut self, world: &'w World, ) -> Result<<<Q as WorldQuery>::ReadOnly as WorldQuery>::Item<'w>, QuerySingleError>
Returns a single immutable query result when there is exactly one entity matching the query.
This can only be called for read-only queries,
see get_single_mut for write-queries.
If the number of query results is not exactly one, a QuerySingleError is returned
instead.
Sourcepub fn single_mut<'w>(
&mut self,
world: &'w mut World,
) -> <Q as WorldQuery>::Item<'w>
pub fn single_mut<'w>( &mut self, world: &'w mut World, ) -> <Q as WorldQuery>::Item<'w>
Returns a single mutable query result when there is exactly one entity matching the query.
§Panics
Panics if the number of query results is not exactly one. Use
get_single_mut to return a Result instead of panicking.
Sourcepub fn get_single_mut<'w>(
&mut self,
world: &'w mut World,
) -> Result<<Q as WorldQuery>::Item<'w>, QuerySingleError>
pub fn get_single_mut<'w>( &mut self, world: &'w mut World, ) -> Result<<Q as WorldQuery>::Item<'w>, QuerySingleError>
Returns a single mutable query result when there is exactly one entity matching the query.
If the number of query results is not exactly one, a QuerySingleError is returned
instead.
Sourcepub unsafe fn get_single_unchecked<'w>(
&mut self,
world: UnsafeWorldCell<'w>,
) -> Result<<Q as WorldQuery>::Item<'w>, QuerySingleError>
pub unsafe fn get_single_unchecked<'w>( &mut self, world: UnsafeWorldCell<'w>, ) -> Result<<Q as WorldQuery>::Item<'w>, QuerySingleError>
Returns a query result when there is exactly one entity matching the query.
If the number of query results is not exactly one, a QuerySingleError is returned
instead.
§Safety
This does not check for mutable query correctness. To be safe, make sure mutable queries have unique access to the components they query.
Sourcepub unsafe fn get_single_unchecked_manual<'w>(
&self,
world: UnsafeWorldCell<'w>,
last_run: Tick,
this_run: Tick,
) -> Result<<Q as WorldQuery>::Item<'w>, QuerySingleError>
pub unsafe fn get_single_unchecked_manual<'w>( &self, world: UnsafeWorldCell<'w>, last_run: Tick, this_run: Tick, ) -> Result<<Q as WorldQuery>::Item<'w>, QuerySingleError>
Returns a query result when there is exactly one entity matching the query, where the last change and the current change tick are given.
If the number of query results is not exactly one, a QuerySingleError is returned
instead.
§Safety
This does not check for mutable query correctness. To be safe, make sure mutable queries have unique access to the components they query.
Trait Implementations§
Source§impl<Q, F> Debug for QueryState<Q, F>where
Q: WorldQuery,
F: ReadOnlyWorldQuery,
impl<Q, F> Debug for QueryState<Q, F>where
Q: WorldQuery,
F: ReadOnlyWorldQuery,
Source§impl<'a, Q, F> ExclusiveSystemParam for &'a mut QueryState<Q, F>where
Q: WorldQuery + 'static,
F: ReadOnlyWorldQuery + 'static,
impl<'a, Q, F> ExclusiveSystemParam for &'a mut QueryState<Q, F>where
Q: WorldQuery + 'static,
F: ReadOnlyWorldQuery + 'static,
Source§type State = QueryState<Q, F>
type State = QueryState<Q, F>
Source§type Item<'s> = &'s mut QueryState<Q, F>
type Item<'s> = &'s mut QueryState<Q, F>
SystemParam::Item.Source§fn init(
world: &mut World,
_system_meta: &mut SystemMeta,
) -> <&'a mut QueryState<Q, F> as ExclusiveSystemParam>::State
fn init( world: &mut World, _system_meta: &mut SystemMeta, ) -> <&'a mut QueryState<Q, F> as ExclusiveSystemParam>::State
State.Source§fn get_param<'s>(
state: &'s mut <&'a mut QueryState<Q, F> as ExclusiveSystemParam>::State,
_system_meta: &SystemMeta,
) -> <&'a mut QueryState<Q, F> as ExclusiveSystemParam>::Item<'s>
fn get_param<'s>( state: &'s mut <&'a mut QueryState<Q, F> as ExclusiveSystemParam>::State, _system_meta: &SystemMeta, ) -> <&'a mut QueryState<Q, F> as ExclusiveSystemParam>::Item<'s>
ExclusiveSystemParamFunction.Source§impl<Q, F> FromWorld for QueryState<Q, F>where
Q: WorldQuery,
F: ReadOnlyWorldQuery,
impl<Q, F> FromWorld for QueryState<Q, F>where
Q: WorldQuery,
F: ReadOnlyWorldQuery,
Source§fn from_world(world: &mut World) -> QueryState<Q, F>
fn from_world(world: &mut World) -> QueryState<Q, F>
Self using data from the given WorldAuto Trait Implementations§
impl<Q, F> Freeze for QueryState<Q, F>
impl<Q, F> RefUnwindSafe for QueryState<Q, F>
impl<Q, F> Send for QueryState<Q, F>
impl<Q, F> Sync for QueryState<Q, F>
impl<Q, F> Unpin for QueryState<Q, F>
impl<Q, F> UnwindSafe for QueryState<Q, F>
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T ShaderType for self. When used in AsBindGroup
derives, it is safe to assume that all images in self exist.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more