Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - Gamepad type is Copy; do not require / return references to it in Gamepads API #5296

Closed
wants to merge 7 commits into from

Conversation

alice-i-cecile
Copy link
Member

Objective

  • The Gamepad type is a tiny value-containing type that implements Copy.
  • By convention, references to Copy types should be avoided, as they can introduce overhead and muddle the semantics of what's going on.
  • This allows us to reduce boilerplate reference manipulation and lifetimes in user facing code.

Solution

  • Make assorted methods on Gamepads take / return a raw Gamepad, rather than &Gamepad.

Migration Guide

  • Gamepads::iter now returns an iterator of Gamepad. rather than an iterator of &Gamepad.
  • Gamepads::contains now accepts a Gamepad, rather than a &Gamepad.

@alice-i-cecile alice-i-cecile added A-Input Player input via keyboard, mouse, gamepad, and more C-Code-Quality A section of code that is hard to understand or change C-Usability A targeted quality-of-life change that makes Bevy easier to use labels Jul 12, 2022
@Nilirad Nilirad added the M-Needs-Migration-Guide A breaking change to Bevy's public API that needs to be noted in a migration guide label Jul 12, 2022
@Nilirad
Copy link
Contributor

Nilirad commented Jul 12, 2022

Labeled as breaking change since it changes function signatures.

Copy link
Contributor

@hymm hymm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

crates/bevy_input/src/gamepad.rs Outdated Show resolved Hide resolved
Co-authored-by: ira <[email protected]>
@alice-i-cecile
Copy link
Member Author

bors r+

bors bot pushed a commit that referenced this pull request Sep 3, 2022
… `Gamepads` API (#5296)

# Objective

- The `Gamepad` type is a tiny value-containing type that implements `Copy`.
- By convention, references to `Copy` types should be avoided, as they can introduce overhead and muddle the semantics of what's going on.
- This allows us to reduce boilerplate reference manipulation and lifetimes in user facing code.

## Solution

- Make assorted methods on `Gamepads` take / return a raw `Gamepad`, rather than `&Gamepad`.

## Migration Guide

- `Gamepads::iter` now returns an iterator of `Gamepad`. rather than an iterator of `&Gamepad`.
- `Gamepads::contains` now accepts a `Gamepad`, rather than a `&Gamepad`.
@bors
Copy link
Contributor

bors bot commented Sep 3, 2022

Build failed:

Co-authored-by: TimJentzsch <[email protected]>
@alice-i-cecile
Copy link
Member Author

bors retry

bors bot pushed a commit that referenced this pull request Sep 3, 2022
… `Gamepads` API (#5296)

# Objective

- The `Gamepad` type is a tiny value-containing type that implements `Copy`.
- By convention, references to `Copy` types should be avoided, as they can introduce overhead and muddle the semantics of what's going on.
- This allows us to reduce boilerplate reference manipulation and lifetimes in user facing code.

## Solution

- Make assorted methods on `Gamepads` take / return a raw `Gamepad`, rather than `&Gamepad`.

## Migration Guide

- `Gamepads::iter` now returns an iterator of `Gamepad`. rather than an iterator of `&Gamepad`.
- `Gamepads::contains` now accepts a `Gamepad`, rather than a `&Gamepad`.
@bors bors bot changed the title Gamepad type is Copy; do not require / return references to it in Gamepads API [Merged by Bors] - Gamepad type is Copy; do not require / return references to it in Gamepads API Sep 3, 2022
@bors bors bot closed this Sep 3, 2022
james7132 pushed a commit to james7132/bevy that referenced this pull request Oct 28, 2022
… `Gamepads` API (bevyengine#5296)

# Objective

- The `Gamepad` type is a tiny value-containing type that implements `Copy`.
- By convention, references to `Copy` types should be avoided, as they can introduce overhead and muddle the semantics of what's going on.
- This allows us to reduce boilerplate reference manipulation and lifetimes in user facing code.

## Solution

- Make assorted methods on `Gamepads` take / return a raw `Gamepad`, rather than `&Gamepad`.

## Migration Guide

- `Gamepads::iter` now returns an iterator of `Gamepad`. rather than an iterator of `&Gamepad`.
- `Gamepads::contains` now accepts a `Gamepad`, rather than a `&Gamepad`.
ItsDoot pushed a commit to ItsDoot/bevy that referenced this pull request Feb 1, 2023
… `Gamepads` API (bevyengine#5296)

# Objective

- The `Gamepad` type is a tiny value-containing type that implements `Copy`.
- By convention, references to `Copy` types should be avoided, as they can introduce overhead and muddle the semantics of what's going on.
- This allows us to reduce boilerplate reference manipulation and lifetimes in user facing code.

## Solution

- Make assorted methods on `Gamepads` take / return a raw `Gamepad`, rather than `&Gamepad`.

## Migration Guide

- `Gamepads::iter` now returns an iterator of `Gamepad`. rather than an iterator of `&Gamepad`.
- `Gamepads::contains` now accepts a `Gamepad`, rather than a `&Gamepad`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Input Player input via keyboard, mouse, gamepad, and more C-Code-Quality A section of code that is hard to understand or change C-Usability A targeted quality-of-life change that makes Bevy easier to use M-Needs-Migration-Guide A breaking change to Bevy's public API that needs to be noted in a migration guide
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants