Skip to main content

ReadOnlyQueryData

Trait ReadOnlyQueryData 

Source
pub trait ReadOnlyQueryData: QueryData { }
Expand description

A QueryData that only reads, so it can run on a shared &World (Query::iter, Query::par_for_each).

Implemented for &T, Option<&T>, Entity and tuples of them.

use pragma_ecs::{Entity, Query, ReadOnlyQueryData, World};

fn count<Q: ReadOnlyQueryData>(world: &World) -> Result<usize, pragma_ecs::EcsError> {
    Ok(Query::<Q>::new()?.iter(world)?.count())
}

let mut world = World::new();
let entity = world.spawn()?;
world.insert(entity, 1_u32)?;
assert_eq!(count::<(Entity, &u32)>(&world)?, 1);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<A: ReadOnlyQueryData, B: ReadOnlyQueryData, C: ReadOnlyQueryData, D: ReadOnlyQueryData, E: ReadOnlyQueryData, F: ReadOnlyQueryData, G: ReadOnlyQueryData, H: ReadOnlyQueryData> ReadOnlyQueryData for (A, B, C, D, E, F, G, H)

Source§

impl<A: ReadOnlyQueryData, B: ReadOnlyQueryData, C: ReadOnlyQueryData, D: ReadOnlyQueryData, E: ReadOnlyQueryData, F: ReadOnlyQueryData, G: ReadOnlyQueryData> ReadOnlyQueryData for (A, B, C, D, E, F, G)

Source§

impl<A: ReadOnlyQueryData, B: ReadOnlyQueryData, C: ReadOnlyQueryData, D: ReadOnlyQueryData, E: ReadOnlyQueryData, F: ReadOnlyQueryData> ReadOnlyQueryData for (A, B, C, D, E, F)

Source§

impl<A: ReadOnlyQueryData, B: ReadOnlyQueryData, C: ReadOnlyQueryData, D: ReadOnlyQueryData, E: ReadOnlyQueryData> ReadOnlyQueryData for (A, B, C, D, E)

Source§

impl<A: ReadOnlyQueryData, B: ReadOnlyQueryData, C: ReadOnlyQueryData, D: ReadOnlyQueryData> ReadOnlyQueryData for (A, B, C, D)

Source§

impl<A: ReadOnlyQueryData, B: ReadOnlyQueryData, C: ReadOnlyQueryData> ReadOnlyQueryData for (A, B, C)

Source§

impl<A: ReadOnlyQueryData, B: ReadOnlyQueryData> ReadOnlyQueryData for (A, B)

Source§

impl<A: ReadOnlyQueryData> ReadOnlyQueryData for (A,)

Source§

impl<T: Component> ReadOnlyQueryData for &T

Source§

impl<T: Component> ReadOnlyQueryData for Option<&T>

Implementors§