bevy/crates
Gino Valente 227e1bbf34 bevy_reflect: Re-reflect hashbrown types (#18944)
# Objective

Fixes #18943

## Solution

Reintroduces support for `hashbrown`'s `HashMap` and `HashSet` types.
These were inadvertently removed when `bevy_platform` newtyped the
`hashbrown` types.

Since we removed our `hashbrown` dependency, I gated these impls behind
a `hashbrown` feature. Not entirely sure if this is necessary since we
enabled it for `bevy_reflect` through `bevy_platform` anyways. (Complex
features still confuse me a bit so let me know if I can just remove it!)

I also went ahead and preemptively implemented `TypePath` for `PassHash`
while I was here.

## Testing

You can test that it works by adding the following to a Bevy example
based on this PR (you'll also need to include `hashbrown` of course):

```rust
#[derive(Reflect)]
struct Foo(hashbrown::HashMap<String, String>);
```

Then check it compiles with:

```
cargo check --example hello_world --no-default-features --features=bevy_reflect/hashbrown
```
2025-05-30 22:59:09 +02:00
..
bevy_a11y Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_animation Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_app Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_asset Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_audio Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_color Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_core_pipeline Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_derive Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_dev_tools Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_diagnostic Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_dylib Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_ecs Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_encase_derive Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_gilrs Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_gizmos Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_gltf Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_image Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_input Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_input_focus Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_internal Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_log Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_macro_utils Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_math Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_mesh Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_mikktspace Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_pbr Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_picking Removed conversion from pointer physical coordinates to viewport local coordinates in bevy_picking make_ray function (#18870) 2025-05-30 22:59:09 +02:00
bevy_platform Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_ptr Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_reflect bevy_reflect: Re-reflect hashbrown types (#18944) 2025-05-30 22:59:09 +02:00
bevy_remote Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_render Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_scene Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_sprite Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_state Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_tasks Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_text Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_time Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_transform Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_ui Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_utils Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_window Release 0.16.0 2025-04-21 23:14:00 +02:00
bevy_winit Release 0.16.0 2025-04-21 23:14:00 +02:00