bevyengine / bevyengine/bevy

Add a WorldQuery adapter to make accessing single() more ergonomic.

Open
#10,112 2 comments 0 reactions 0 assignees View on GitHub
A-ECS C-Feature X-Needs-SME
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

## What problem does this solve or what need does it fill?

It isn't unusual to assert that a query will only ever result in a single entity:

```rust
fn example(
camera: Query<(Entity, &Camera, &Transform, &GlobalTransform)>,
) {
let (camera_entity, camera, camera_transform, camera_global_transform) = camera.single();
// ...
}
```

We could simplify this pattern with a WorldQuery adapter similar to bevy_trait_query's One<>:

```rust
fn example(
camera: Single>,
) {
// camera is a tuple of the things
}
```

## What solution would you like?

A WorldQuery adapter generic seems like it is easy to use and expressive.

## What alternative(s) have you considered?

Not much else?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.