bevy/crates
TheBigCheese 3d3444b981 impl Reflect for std::collections::HashMap instead of only bevy::utils::HashMap (#7739) (#7782)
# Objective

Implement `Reflect` for `std::collections::HashMap<K, V, S>` as well as `hashbrown::HashMap<K, V, S>` rather than just for `hashbrown::HashMap<K, V, RandomState>`. Fixes #7739.

## Solution

Rather than implementing on `HashMap<K, V>` I instead implemented most of the related traits on `HashMap<K, V, S> where S: BuildHasher + Send + Sync + 'static` and then `FromReflect` also needs the extra bound `S: Default` because it needs to use `with_capacity_and_hasher` so needs to be able to generate a default hasher.

As the API of `hashbrown::HashMap` is identical to `collections::HashMap` making them both work just required creating an `impl_reflect_for_hashmap` macro like the `impl_reflect_for_veclike` above and then applying this to both HashMaps.

---

## Changelog

`std::collections::HashMap` can now be reflected. Also more `State` generics than just `RandomState` can now be reflected for both `hashbrown::HashMap` and `collections::HashMap`
2023-02-27 21:37:36 +00:00
..
bevy_animation Base Sets (#7466) 2023-02-06 03:10:08 +00:00
bevy_app Clean up formatting in the example for App::add_startup_systems (#7822) 2023-02-25 23:53:10 +00:00
bevy_asset Fix some typos (#7763) 2023-02-20 22:56:57 +00:00
bevy_audio Basic spatial audio (#6028) 2023-02-20 15:31:07 +00:00
bevy_core Fix some typos (#7763) 2023-02-20 22:56:57 +00:00
bevy_core_pipeline Support system.in_schedule() and system.on_startup() (#7790) 2023-02-24 18:33:55 +00:00
bevy_derive update winit to 0.28 (#7480) 2023-02-03 16:41:39 +00:00
bevy_diagnostic Update sysinfo and improve its use a bit (#7826) 2023-02-27 01:05:58 +00:00
bevy_dylib
bevy_dynamic_plugin
bevy_ecs use try_send to replace send.await, unbounded channel should always b… (#7745) 2023-02-27 09:26:32 +00:00
bevy_ecs_compile_fail_tests EntityMut: rename remove_intersection to remove and remove to take (#7810) 2023-02-26 00:09:19 +00:00
bevy_encase_derive
bevy_gilrs Make StartupSet a base set (#7574) 2023-02-19 03:10:06 +00:00
bevy_gltf Add extras field to GltfNode (#6973) 2023-02-13 17:56:36 +00:00
bevy_hierarchy EntityMut: rename remove_intersection to remove and remove to take (#7810) 2023-02-26 00:09:19 +00:00
bevy_input add common run conditions to bevy_input (#7806) 2023-02-25 22:08:13 +00:00
bevy_internal make bevy_text optional again (#7801) 2023-02-24 02:21:07 +00:00
bevy_log
bevy_macro_utils Base Sets (#7466) 2023-02-06 03:10:08 +00:00
bevy_math Add Beziers to bevy_math (#7653) 2023-02-20 18:34:52 +00:00
bevy_mikktspace
bevy_pbr Support system.in_schedule() and system.on_startup() (#7790) 2023-02-24 18:33:55 +00:00
bevy_ptr
bevy_reflect impl Reflect for std::collections::HashMap instead of only bevy::utils::HashMap (#7739) (#7782) 2023-02-27 21:37:36 +00:00
bevy_reflect_compile_fail_tests
bevy_render Support system.in_schedule() and system.on_startup() (#7790) 2023-02-24 18:33:55 +00:00
bevy_scene Base Sets (#7466) 2023-02-06 03:10:08 +00:00
bevy_sprite Support system.in_schedule() and system.on_startup() (#7790) 2023-02-24 18:33:55 +00:00
bevy_tasks Fix some typos (#7763) 2023-02-20 22:56:57 +00:00
bevy_text Support system.in_schedule() and system.on_startup() (#7790) 2023-02-24 18:33:55 +00:00
bevy_time fix Time::pause docs (missing "not") (#7807) 2023-02-24 12:55:43 +00:00
bevy_transform Avoid using SystemTypeSet for transform systems ambiguity (#7808) 2023-02-24 16:59:19 +00:00
bevy_ui Document how padding and margin behave with percentage values (#7785) 2023-02-25 16:38:03 +00:00
bevy_utils Fix some typos (#7763) 2023-02-20 22:56:57 +00:00
bevy_window Remove mention of Windows 11 from Window::transparent's docs (#7832) 2023-02-27 21:10:52 +00:00
bevy_winit create window as soon as possible (#7668) 2023-02-14 15:08:04 +00:00