Skip to content

Commit 1981272

Browse files
committed
add an example
1 parent 78aa75e commit 1981272

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

crates/bevy_ecs/src/system/query.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1585,6 +1585,45 @@ impl<'w, 's, D: QueryData, F: QueryFilter> Query<'w, 's, D, F> {
15851585
/// are dropped, non-archetypal filters like `Added` and `Changed` will no be respected.
15861586
/// To maintain or change filter terms see `Self::join_filtered`.
15871587
///
1588+
/// ## Example
1589+
///
1590+
/// ```rust
1591+
/// # use bevy_ecs::prelude::*;
1592+
/// # use bevy_ecs::system::QueryLens;
1593+
/// #
1594+
/// # #[derive(Component)]
1595+
/// # struct Transform;
1596+
/// #
1597+
/// # #[derive(Component)]
1598+
/// # struct Player;
1599+
/// #
1600+
/// # #[derive(Component)]
1601+
/// # struct Enemy;
1602+
/// #
1603+
/// # let mut world = World::default();
1604+
/// # world.spawn((Transform, Player));
1605+
/// # world.spawn((Transform, Enemy));
1606+
///
1607+
/// fn system(
1608+
/// mut transforms: Query<&Transform>,
1609+
/// mut players: Query<&Player>,
1610+
/// mut enemies: Query<&Enemy>
1611+
/// ) {
1612+
/// let mut players_transforms: QueryLens<(&Transform, &Player)> = transforms.join(&mut players);
1613+
/// for (transform, player) in &players_transforms.query() {
1614+
/// // do something with a and b
1615+
/// }
1616+
///
1617+
/// let mut enemies_transforms: QueryLens<(&Transform, &Enemy)> = transforms.join(&mut enemies);
1618+
/// for (transform, enemy) in &enemies_transforms.query() {
1619+
/// // do something with a and b
1620+
/// }
1621+
/// }
1622+
///
1623+
/// # let mut schedule = Schedule::default();
1624+
/// # schedule.add_systems(system);
1625+
/// # schedule.run(&mut world);
1626+
/// ```
15881627
/// ## Panics
15891628
///
15901629
/// This will panic if `NewD` is not a subset of the union of the original fetch `Q` and `OtherD`.

0 commit comments

Comments
 (0)