bevy_trait_query/internal/
marker.rs

1
2
3
4
5
6
7
8
9
10
11
12
use bevy_ecs::component::Component;

/// Marker for traits that can be used in queries.
pub trait TraitQuery: 'static {}

#[doc(hidden)]
pub trait TraitQueryMarker<Trait: ?Sized + TraitQuery> {
    type Covered: Component;
    /// Casts an untyped pointer to a trait object pointer,
    /// with a vtable corresponding to `Self::Covered`.
    fn cast(_: *mut u8) -> *mut Trait;
}