-
Notifications
You must be signed in to change notification settings - Fork 221
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
Add World::register_*_maybe (#96) #98
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Added World::{ register_w_comp_id_maybe, register_maybe, } functions. The implementation of `register_w_comp_id_maybe` doesn't just call through to `register_w_comp_id` because I'd need to be able to clone `comp_id`, which isn't possible without requiring the component ID type to implement `Clone`. My feeling is that this small redundancy in implementation is worthwhile to avoid placing additional bounds on the component ID type.
@jeffparsons uh, now that I think of it, this should be the default behavior. Since otherwise adding the same type twice would mess things up and the old one would be lost forever. Sorry for changing my mind! |
Closing in favour of #99. |
@kvark No worries. Let's try again! 😁 |
bors bot
added a commit
that referenced
this pull request
Aug 26, 2019
627: Update hashbrown requirement from 0.5.0 to 0.6.0 r=torkleyy a=dependabot-preview[bot] Updates the requirements on [hashbrown](https://github.com/rust-lang/hashbrown) to permit the latest version. <details> <summary>Changelog</summary> *Sourced from [hashbrown's changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md).* > ## [v0.6.0] - 2019-08-13 > > ### Fixed > - Fixed AHash accidentally depending on `std`. ([#110](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/110)) > > ### Changed > - The minimum Rust version has been bumped to 1.32 (due to `rand` dependency). > > ## ~~[v0.5.1] - 2019-08-04~~ > > This release was _yanked_ due to a breaking change for users of `no-default-features`. > > ### Added > - The experimental and unsafe `RawTable` API is available under the "raw" feature. ([#108](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/108)) > - Added entry-like methods for `HashSet`. ([#98](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/98)) > > ### Changed > - Changed the default hasher from FxHash to AHash. ([#97](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/97)) > - `hashbrown` is now fully `no_std` on recent Rust versions (1.36+). ([#96](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/96)) > > ### Fixed > - We now avoid growing the table during insertions when it wasn't necessary. ([#106](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/106)) > - `RawOccupiedEntryMut` now properly implements `Send` and `Sync`. ([#100](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/100)) > - Relaxed `lazy_static` version. ([#92](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/92)) > > ## [v0.5.0] - 2019-06-12 > > ### Fixed > - Resize with a more conservative amount of space after deletions. ([#86](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/86)) > > ### Changed > - Exposed the Layout of the failed allocation in CollectionAllocErr::AllocErr. ([#89](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/89)) > > ## [v0.4.0] - 2019-05-30 > > ### Fixed > - Fixed `Send` trait bounds on `IterMut` not matching the libstd one. ([#82](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/82)) > > ## [v0.3.1] - 2019-05-30 > > ### Fixed > - Fixed incorrect use of slice in unsafe code. ([#80](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/80)) > > ## [v0.3.0] - 2019-04-23 > > ### Changed > - Changed shrink_to to not panic if min_capacity < capacity. ([#67](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/67)) > > ### Fixed > - Worked around emscripten bug emscripten-core/emscripten-fastcomp#258. ([#66](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/66)) ></tr></table> ... (truncated) </details> <details> <summary>Commits</summary> - [`0a62c3e`](rust-lang/hashbrown@0a62c3e) Version 0.6.0 - [`0c1209a`](rust-lang/hashbrown@0c1209a) Auto merge of [#110](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/110) - Amanieu:no_std_ci, r=Amanieu - [`8ae33c9`](rust-lang/hashbrown@8ae33c9) Don't use cross for thumb target CI - [`3239c2b`](rust-lang/hashbrown@3239c2b) Fix clippy warnings - [`12c55b6`](rust-lang/hashbrown@12c55b6) Bump minimum Rust version to 1.32 - [`fb0a938`](rust-lang/hashbrown@fb0a938) Bump minimum ahash version to 0.2.11 - [`bacb169`](rust-lang/hashbrown@bacb169) Merge pull request [#111](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/111) from RalfJung/readme - [`2921920`](rust-lang/hashbrown@2921920) when hashers with different design goals are compared, that should be noted - [`aecb361`](rust-lang/hashbrown@aecb361) Check in CI that the crate builds on targets without libstd - [`167eb54`](rust-lang/hashbrown@167eb54) Version 0.5.1 - Additional commits viewable in [compare view](rust-lang/hashbrown@v0.5.0...v0.6.0) </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot. </details> 631: Remove dependency on mopa crate r=torkleyy a=willglynn `mopa::Any` is less necessary with changes to `std::any::Any`, and `specs` wasn't calling the `mopafy!()` macro for `Component` anyway. ## Checklist * **n/a** I've added tests for all code changes and additions (where applicable) * **n/a** I've added a demonstration of the new feature to one or more examples * **n/a** I've updated the book to reflect my changes * **n/a** Usage of new public items is shown in the API docs Nothing in the `specs` repo except the `Component` definition and an associated generic type in a test refer to `Any`, and even then only in type bounds. No tests or examples are affected. ## API changes This change breaks any code which specifically needs `trait Component: mopa::Any`, but as far as I can tell [that doesn't work now and hasn't since ±ever](#630 (comment)) since `specs` doesn't call the `mopafy!()` macro. Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> Co-authored-by: Will Glynn <[email protected]>
xMAC94x
pushed a commit
to xMAC94x/specs
that referenced
this pull request
Mar 10, 2021
98: Fix wrong documentation of ReadExpect r=torkleyy a=torkleyy Fixes amethyst#471 Co-authored-by: Thomas Schaller <[email protected]>
xMAC94x
pushed a commit
to xMAC94x/specs
that referenced
this pull request
Mar 10, 2021
153: Update hashbrown requirement from 0.5.0 to 0.6.0 r=torkleyy a=dependabot-preview[bot] Updates the requirements on [hashbrown](https://github.com/rust-lang/hashbrown) to permit the latest version. <details> <summary>Changelog</summary> *Sourced from [hashbrown's changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md).* > ## [v0.6.0] - 2019-08-13 > > ### Fixed > - Fixed AHash accidentally depending on `std`. ([amethyst#110](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/110)) > > ### Changed > - The minimum Rust version has been bumped to 1.32 (due to `rand` dependency). > > ## ~~[v0.5.1] - 2019-08-04~~ > > This release was _yanked_ due to a breaking change for users of `no-default-features`. > > ### Added > - The experimental and unsafe `RawTable` API is available under the "raw" feature. ([amethyst#108](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/108)) > - Added entry-like methods for `HashSet`. ([amethyst#98](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/98)) > > ### Changed > - Changed the default hasher from FxHash to AHash. ([amethyst#97](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/97)) > - `hashbrown` is now fully `no_std` on recent Rust versions (1.36+). ([amethyst#96](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/96)) > > ### Fixed > - We now avoid growing the table during insertions when it wasn't necessary. ([amethyst#106](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/106)) > - `RawOccupiedEntryMut` now properly implements `Send` and `Sync`. ([amethyst#100](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/100)) > - Relaxed `lazy_static` version. ([amethyst#92](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/92)) > > ## [v0.5.0] - 2019-06-12 > > ### Fixed > - Resize with a more conservative amount of space after deletions. ([amethyst#86](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/86)) > > ### Changed > - Exposed the Layout of the failed allocation in CollectionAllocErr::AllocErr. ([amethyst#89](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/89)) > > ## [v0.4.0] - 2019-05-30 > > ### Fixed > - Fixed `Send` trait bounds on `IterMut` not matching the libstd one. ([amethyst#82](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/82)) > > ## [v0.3.1] - 2019-05-30 > > ### Fixed > - Fixed incorrect use of slice in unsafe code. ([amethyst#80](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/80)) > > ## [v0.3.0] - 2019-04-23 > > ### Changed > - Changed shrink_to to not panic if min_capacity < capacity. ([amethyst#67](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/67)) > > ### Fixed > - Worked around emscripten bug emscripten-core/emscripten-fastcomp#258. ([amethyst#66](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/66)) ></tr></table> ... (truncated) </details> <details> <summary>Commits</summary> - [`0a62c3e`](rust-lang/hashbrown@0a62c3e) Version 0.6.0 - [`0c1209a`](rust-lang/hashbrown@0c1209a) Auto merge of [amethyst#110](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/110) - Amanieu:no_std_ci, r=Amanieu - [`8ae33c9`](rust-lang/hashbrown@8ae33c9) Don't use cross for thumb target CI - [`3239c2b`](rust-lang/hashbrown@3239c2b) Fix clippy warnings - [`12c55b6`](rust-lang/hashbrown@12c55b6) Bump minimum Rust version to 1.32 - [`fb0a938`](rust-lang/hashbrown@fb0a938) Bump minimum ahash version to 0.2.11 - [`bacb169`](rust-lang/hashbrown@bacb169) Merge pull request [amethyst#111](https://github-redirect.dependabot.com/rust-lang/hashbrown/issues/111) from RalfJung/readme - [`2921920`](rust-lang/hashbrown@2921920) when hashers with different design goals are compared, that should be noted - [`aecb361`](rust-lang/hashbrown@aecb361) Check in CI that the crate builds on targets without libstd - [`167eb54`](rust-lang/hashbrown@167eb54) Version 0.5.1 - Additional commits viewable in [compare view](rust-lang/hashbrown@v0.5.0...v0.6.0) </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot. </details> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added
World::{ register_w_comp_id_maybe, register_maybe }
functions.The implementation of
register_w_comp_id_maybe
doesn't justcall through to
register_w_comp_id
because I'd need to be ableto clone
comp_id
, which isn't possible without requiring thecomponent ID type to implement
Clone
.My feeling is that this small redundancy in implementation is worthwhile
to avoid placing additional bounds on the component ID type.