bevy/crates
MrGVSV acbee7795d bevy_reflect: Reflect arrays (#4701)
# Objective

> ℹ️ **Note**: This is a rebased version of #2383. A large portion of it has not been touched (only a few minor changes) so that any additional discussion may happen here. All credit should go to @NathanSWard for their work on the original PR.

- Currently reflection is not supported for arrays.
- Fixes #1213

## Solution

* Implement reflection for arrays via the `Array` trait.
* Note, `Array` is different from `List` in the way that you cannot push elements onto an array as they are statically sized.
* Now `List` is defined as a sub-trait of `Array`.

---

## Changelog

* Added the `Array` reflection trait
* Allows arrays up to length 32 to be reflected via the `Array` trait

## Migration Guide

* The `List` trait now has the `Array` supertrait. This means that `clone_dynamic` will need to specify which version to use:
  ```rust
  // Before
  let cloned = my_list.clone_dynamic();
  // After
  let cloned = List::clone_dynamic(&my_list);
  ```
* All implementers of `List` will now need to implement `Array` (this mostly involves moving the existing methods to the `Array` impl)

Co-authored-by: NathanW <nathansward@comcast.net>
Co-authored-by: MrGVSV <49806985+MrGVSV@users.noreply.github.com>
2022-05-13 01:13:30 +00:00
..
bevy_animation Make AnimationClip::duration return value instead of reference (#4617) 2022-04-27 23:44:06 +00:00
bevy_app exact sized event iterators (#3863) 2022-05-09 13:19:32 +00:00
bevy_asset Make public macros more robust with $crate (#4655) 2022-05-06 19:29:45 +00:00
bevy_audio Add missing audio/ogg file extensions: .oga, .spx (#4703) 2022-05-09 13:37:40 +00:00
bevy_core add #[reflect(Default)] to create default value for reflected types (#3733) 2022-05-03 19:20:13 +00:00
bevy_core_pipeline Do not create nor execute render passes which have no phase items to draw (#4643) 2022-05-02 20:22:30 +00:00
bevy_crevice Bump Bevy to 0.8.0-dev (#4505) 2022-04-17 23:04:52 +00:00
bevy_derive Decouple some dependencies (#3886) 2022-04-27 19:08:11 +00:00
bevy_diagnostic Bump Bevy to 0.8.0-dev (#4505) 2022-04-17 23:04:52 +00:00
bevy_dylib Bump Bevy to 0.8.0-dev (#4505) 2022-04-17 23:04:52 +00:00
bevy_dynamic_plugin Bump Bevy to 0.8.0-dev (#4505) 2022-04-17 23:04:52 +00:00
bevy_ecs Add a clear() method to the EventReader that consumes the iterator (#4693) 2022-05-13 00:57:04 +00:00
bevy_ecs_compile_fail_tests Make derived SystemParam readonly if possible (#4650) 2022-05-09 16:09:33 +00:00
bevy_gilrs Change gamepad.rs tuples to normal structs (#4519) 2022-05-02 13:20:55 +00:00
bevy_gltf fix "unused" warnings when compiling with render feature but without animation (#4714) 2022-05-10 20:01:55 +00:00
bevy_hierarchy Bump Bevy to 0.8.0-dev (#4505) 2022-04-17 23:04:52 +00:00
bevy_input Allow closing windows at runtime (#3575) 2022-05-05 13:35:43 +00:00
bevy_internal bevy_ptr standalone crate (#4653) 2022-05-04 19:16:10 +00:00
bevy_log can specify chrome tracing file (#4618) 2022-05-03 15:35:04 +00:00
bevy_macro_utils bevy_reflect_derive: Tidying up the code (#4712) 2022-05-12 19:43:23 +00:00
bevy_math Document bevy_math (#4591) 2022-04-26 18:23:29 +00:00
bevy_pbr use const Vec2 in lights cluster and bounding box when possible (#4602) 2022-05-06 22:05:45 +00:00
bevy_ptr some cleanup for bevy_ptr (#4668) 2022-05-06 19:15:24 +00:00
bevy_reflect bevy_reflect: Reflect arrays (#4701) 2022-05-13 01:13:30 +00:00
bevy_render fix tracy frame marker placement (after preseting *all* windows) (#4731) 2022-05-12 18:39:20 +00:00
bevy_scene Bump Bevy to 0.8.0-dev (#4505) 2022-04-17 23:04:52 +00:00
bevy_sprite Add support for vertex colors (#4528) 2022-05-05 00:46:32 +00:00
bevy_tasks Remove unused CountdownEvent (#4290) 2022-04-26 21:20:12 +00:00
bevy_text Update layout/style when scale factor changes too (#4689) 2022-05-09 14:18:02 +00:00
bevy_transform add #[reflect(Default)] to create default value for reflected types (#3733) 2022-05-03 19:20:13 +00:00
bevy_ui add #[reflect(Default)] to create default value for reflected types (#3733) 2022-05-03 19:20:13 +00:00
bevy_utils Make public macros more robust with $crate (#4655) 2022-05-06 19:29:45 +00:00
bevy_window Allow closing windows at runtime (#3575) 2022-05-05 13:35:43 +00:00
bevy_winit Allow closing windows at runtime (#3575) 2022-05-05 13:35:43 +00:00