bevy/crates
Vic 39a1e2b488
implement EntityIndexMap/Set (#17449)
# Objective

We do not have `EntityIndexMap`/`EntityIndexSet`.

Usual `HashMap`s/`HashSet`s do not guarantee any order, which can be
awkward for some use cases.
The `indexmap` versions remember insertion order, which then also
becomes their iteration order.
They can be thought of as a `HashTable` + `Vec`, which means fast
iteration and removal, indexing by index (not just key), and slicing!
Performance should otherwise be comparable.

## Solution

Because `indexmap` is structured to mirror `hashbrown`, it suffers the
same issue of not having the `Hasher` generic on their iterators. #16912
solved this issue for `EntityHashMap`/`EntityHashSet` with a wrapper
around the hashbrown version, so this PR does the same.

Hopefully these wrappers can be removed again in the future by having
`hashbrown`/`indexmap` adopt that generic in their iterators themselves!
2025-01-24 08:09:34 +00:00
..
bevy_a11y Add no_std Support to bevy_a11y (#17505) 2025-01-23 03:52:47 +00:00
bevy_animation Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_app Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_asset Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_audio Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00
bevy_color Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_core_pipeline Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_derive Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_dev_tools Adds update interval config for FpsOverlayPlugin (#17489) 2025-01-24 05:57:36 +00:00
bevy_diagnostic Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_dylib Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_ecs implement EntityIndexMap/Set (#17449) 2025-01-24 08:09:34 +00:00
bevy_encase_derive Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_gilrs Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_gizmos Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_gltf Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_image Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_input Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_input_focus Refactored ComponentHook Parameters into HookContext (#17503) 2025-01-23 02:45:24 +00:00
bevy_internal Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_log Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_macro_utils Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_math Reworked Segment types into their cartesian forms (#17404) 2025-01-19 03:54:45 +00:00
bevy_mesh Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_mikktspace Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_pbr Procedural atmospheric scattering (#16314) 2025-01-23 22:52:46 +00:00
bevy_picking Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_platform_support Fix Typo in bevy_platform_support's spin Feature (#17516) 2025-01-23 21:47:21 +00:00
bevy_ptr Update safety docs for Ptr::assert_unique (#17394) 2025-01-16 03:25:19 +00:00
bevy_reflect Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_remote Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_render Procedural atmospheric scattering (#16314) 2025-01-23 22:52:46 +00:00
bevy_scene Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_sprite Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_state Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_tasks Move spin to bevy_platform_support out of other crates (#17470) 2025-01-23 05:27:02 +00:00
bevy_text Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_time Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_transform Parent -> ChildOf (#17427) 2025-01-20 22:13:29 +00:00
bevy_ui Replace checks for empty uinodes (#17520) 2025-01-24 05:38:20 +00:00
bevy_utils Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_window Move spin to bevy_platform_support out of other crates (#17470) 2025-01-23 05:27:02 +00:00
bevy_winit Make CustomCursor variants CustomCursorImage/CustomCursorUrl structs (#17518) 2025-01-24 05:39:04 +00:00