bevy/crates
Nicola Papale 7083f0d593
Make it so ParsedPath can be passed to GetPath (#9373)
# Objective

- Unify the `ParsedPath` and `GetPath` APIs. They weirdly didn't play
well together.
- Make `ParsedPath` and `GetPath` API easier to use

## Solution

- Add the `ReflectPath` trait.
- `GetPath` methods now accept an `impl ReflectPath<'a>` instead of a
`&'a str`, this mean it also can accepts a `&ParsedPath`
- Make `GetPath: Reflect` and use default impl for `Reflect` types.
- Add `GetPath` and `ReflectPath` to the `bevy_reflect` prelude

---

## Changelog

- Add the `ReflectPath` trait.
- `GetPath` methods now accept an `impl ReflectPath<'a>` instead of a
`&'a str`, this mean it also can accept a `&ParsedPath`
- Make `GetPath: Reflect` and use default impl for `Reflect` types.
- Add `GetPath` and `ReflectPath` to the `bevy_reflect` prelude

## Migration Guide

`GetPath` now requires `Reflect`. This reduces a lot of boilerplate on
bevy's side. If you were implementing manually `GetPath` on your own
type, please get in touch!

`ParsedPath::element[_mut]` isn't an inherent method of `ParsedPath`,
you must now import `ReflectPath`. This is only relevant if you weren't
importing the bevy prelude.

```diff
-use bevy::reflect::ParsedPath;
+use bevy::reflect::{ParsedPath, ReflectPath};

 parsed_path.element(reflect_type).unwrap()
 parsed_path.element(reflect_type).unwrap()
2023-08-25 14:32:41 +00:00
..
bevy_a11y Bump Version after Release (#9106) 2023-07-10 21:19:27 +00:00
bevy_animation Fix CI for Rust 1.72 (#9562) 2023-08-25 12:34:24 +00:00
bevy_app Add SpawnScene to prelude (#9451) 2023-08-19 19:42:12 +00:00
bevy_asset Fix CI for Rust 1.72 (#9562) 2023-08-25 12:34:24 +00:00
bevy_audio audio sinks don't need their custom drop anymore (#9336) 2023-08-11 21:16:12 +00:00
bevy_core Remove Resource and add Debug to TaskPoolOptions (#9485) 2023-08-20 22:32:41 +00:00
bevy_core_pipeline Fix CI for Rust 1.72 (#9562) 2023-08-25 12:34:24 +00:00
bevy_derive Bump Version after Release (#9106) 2023-07-10 21:19:27 +00:00
bevy_diagnostic Bump Version after Release (#9106) 2023-07-10 21:19:27 +00:00
bevy_dylib Bump Version after Release (#9106) 2023-07-10 21:19:27 +00:00
bevy_dynamic_plugin Bump Version after Release (#9106) 2023-07-10 21:19:27 +00:00
bevy_ecs Fix CI for Rust 1.72 (#9562) 2023-08-25 12:34:24 +00:00
bevy_ecs_compile_fail_tests Fix CI for Rust 1.72 (#9562) 2023-08-25 12:34:24 +00:00
bevy_encase_derive Bump Version after Release (#9106) 2023-07-10 21:19:27 +00:00
bevy_gilrs input: allow multiple gamepad inputs to be registered for one button in one frame (#9446) 2023-08-15 21:50:29 +00:00
bevy_gizmos Fix CI for Rust 1.72 (#9562) 2023-08-25 12:34:24 +00:00
bevy_gltf Add support for KHR_materials_emissive_strength (#9553) 2023-08-24 00:17:44 +00:00
bevy_hierarchy Prevent setting parent as itself (#8980) 2023-08-07 23:00:48 +00:00
bevy_input Bevy Input Docs : the modules (#9467) 2023-08-23 12:44:49 +00:00
bevy_internal fix clippy::default_constructed_unit_structs and trybuild errors (#9144) 2023-07-13 22:23:04 +00:00
bevy_log Update tracy-client requirement from 0.15 to 0.16 (#9436) 2023-08-15 07:45:21 +00:00
bevy_macro_utils Add some more helpful errors to BevyManifest when it doesn't find Cargo.toml (#9207) 2023-07-19 12:05:04 +00:00
bevy_macros_compile_fail_tests bevy_derive: Add #[deref] attribute (#8552) 2023-05-16 18:29:09 +00:00
bevy_math Fix CI for Rust 1.72 (#9562) 2023-08-25 12:34:24 +00:00
bevy_mikktspace Bump Version after Release (#9106) 2023-07-10 21:19:27 +00:00
bevy_pbr Fix CI for Rust 1.72 (#9562) 2023-08-25 12:34:24 +00:00
bevy_ptr Put #[repr(transparent)] attr to bevy_ptr types (#9068) 2023-07-14 18:55:15 +00:00
bevy_reflect Make it so ParsedPath can be passed to GetPath (#9373) 2023-08-25 14:32:41 +00:00
bevy_reflect_compile_fail_tests Fix CI for Rust 1.72 (#9562) 2023-08-25 12:34:24 +00:00
bevy_render Fix CI for Rust 1.72 (#9562) 2023-08-25 12:34:24 +00:00
bevy_scene Add SceneInstanceReady (#9313) 2023-08-15 19:45:01 +00:00
bevy_sprite Make Anchor Copy (#9327) 2023-08-11 21:04:53 +00:00
bevy_tasks elaborate on TaskPool and bevy tasks (#8750) 2023-08-11 21:07:28 +00:00
bevy_text Improve font size related docs (#9320) 2023-08-03 07:48:11 +00:00
bevy_time Add missing documentation to bevy_time (#9428) 2023-08-15 21:48:37 +00:00
bevy_transform Simplify parallel iteration methods (#8854) 2023-07-23 11:09:24 +00:00
bevy_ui Fix CI for Rust 1.72 (#9562) 2023-08-25 12:34:24 +00:00
bevy_utils Bump Version after Release (#9106) 2023-07-10 21:19:27 +00:00
bevy_window User controlled window visibility (#9355) 2023-08-20 22:42:07 +00:00
bevy_winit Fix CI for Rust 1.72 (#9562) 2023-08-25 12:34:24 +00:00