Commit Graph
160 Commits
Author SHA1 Message Date
Dmitry Stepanov 51d72aa2fb do not format doc comments in reflection 2026-09-20 16:52:02 +03:00
Dmitry Stepanov 8fd705907f fixed field_direct_ref/mut for structs with hidden fields 2026-09-19 12:08:29 +03:00
Dmitry Stepanov 0b1694aa71 fixed incorrect impl of derived fields_count 2026-08-30 11:49:10 +03:00
Dmitry Stepanov 8b25b34db9 fixed tuple elements naming 2026-08-20 19:12:26 +03:00
Dmitry Stepanov efe97b8229 handle non-exhaustive enums in Visit proc-macro correctly 2026-08-11 11:48:55 +03:00
Dmitry Stepanov 8363d35c0b ability to ignore type uuid of generics in reflect proc-macro 2026-07-26 16:23:53 +03:00
Dmitry Stepanov d03520e291 ability to replace hash map key via reflection + refactoring 2026-07-19 21:26:03 +03:00
Dmitry Stepanov 5112072d1e bump msrv + clippy fixes 2026-07-04 20:54:03 +03:00
Dmitry Stepanov d35476c864 more PartialEq impls 2026-06-07 23:58:55 +03:00
Dmitry Stepanov 7a798f7e68 Reflect::try_compare impls 2026-06-06 22:37:34 +03:00
Dmitry Stepanov 0965df060c Reflect::try_compare draft 2026-06-05 23:06:29 +03:00
Dmitry Stepanov 7f33a13ff9 merged TypeUuidProvider trait into Reflect 2026-05-28 21:50:17 +03:00
Dmitry Stepanov 480559e07a refactored Reflect::as_xxx methods to return value itself
- there's no reason anymore to use closures there because proxy structures now supports reflection in normal way
2026-05-21 18:22:39 +03:00
Dmitry Stepanov 32d37bde41 ability to specify custom clone function for reflect trait 2026-05-20 23:38:41 +03:00
Dmitry Stepanov ec83a5d6e5 refactored Reflect trait to remove unnecessary proxying
- proxying to the inner value overly complicates the implementation and adds a lot overhead
- this is quite dangerous change since it may have subtle side effects, needs to be thoroughly tested
2026-05-19 18:49:17 +03:00
Dmitry Stepanov 93d4920477 renamed methods with confusing naming + docs 2026-05-16 19:31:41 +03:00
Dmitry Stepanov e7f1b1d4d8 cleaned up type info fetching from Reflect + put type info in a struct 2026-05-15 11:32:33 +03:00
Dmitry Stepanov b3be88a471 Reflect::into_any -> Reflect::into_inner_reflect + docs 2026-05-14 11:28:08 +03:00
Dmitry Stepanov 91f8c360b5 removed Reflect::as_any/as_any_mut
- useless methods because can be replaced via `Reflect::as_reflect` + `as &dyn Reflect` cast
2026-05-13 23:33:13 +03:00
Dmitry Stepanov fcd280057b count fields in proc macro
- much faster than calling the default impl
2026-05-10 10:54:41 +03:00
Dmitry Stepanov c03e4aa7e9 removed ComponentProvider, merged its functionality into Reflect
- chained component fetching isn't supported yet, so it is not one-to-one merge
2026-05-09 19:55:11 +03:00
Dmitry Stepanov 5cf90dff53 Reflect::first_field_ref/mut_of_type 2026-05-08 15:18:08 +03:00
Dmitry Stepanov 1904f95519 Reflect::get_field_direct_ref/mut 2026-05-08 12:56:48 +03:00
Dmitry Stepanov 0527bcd2af removed redundant allow switch 2026-05-07 22:31:31 +03:00
Dmitry Stepanov 660bcd709a renamed field -> find_field + field_mut -> find_field_mut 2026-05-06 23:49:46 +03:00
Dmitry Stepanov 4a0602ab25 bump version for the future release
- helps to catch bug reports from the "nightly" version of the engine
2026-03-30 20:50:58 +03:00
Dmitry Stepanov 9e9e2d7032 1.0.1 + changelog 2026-03-28 09:39:38 +03:00
Dmitry Stepanov 496414ee33 bump version 2026-02-12 19:08:48 +03:00
Dmitry Stepanov 4de934e11f 1.0.0-rc.2 2026-02-05 22:04:37 +03:00
Dmitry Stepanov 739b8abb70 fixed infinite recursion in trait bounds for Visit and Reflect procmacro
- this bug was rare, but very annoying
2026-01-19 22:06:39 +03:00
Dmitry Stepanov 7b79b19a39 fixed clippy warnings 2025-11-01 17:23:37 +03:00
Dmitry 3a7fd975d5 removed redundant methods
- use trait upcasting instead
2025-10-25 13:47:55 +03:00
Dmitry Stepanov ef39d2aada updated msrv 2025-10-22 20:27:20 +03:00
Dmitry Stepanov 25652975e0 use doc comment for property description 2025-08-16 12:11:32 +03:00
Dmitry Stepanov 164534e22e ability to specify pre and post visit method calls for visitor codegen 2025-06-26 18:34:59 +03:00
kkolyan cca24f416a (breaking change) blanket impl for ScriptMessagePayload replaced with derive macro 2025-06-11 22:21:20 +03:00
Dmitry Stepanov 0e3bd07c38 1.0.0-rc.1 2025-05-29 18:58:18 +03:00
Dmitry Stepanov 94e92e473d ability to copy/paste values in inspector
- works incorrectly with inheritable variables, will be fixed later
2025-05-18 11:33:30 +03:00
Dmitry Stepanov f0d6667d14 use Clone::clone(self) instead of self.clone() to improve error msg 2025-05-17 10:35:28 +03:00
Dmitry Stepanov ef4e4b46ca Reflect::try_clone_box
- `#[reflect(non_cloneable)]` for types that cannot be cloned
2025-05-16 23:26:34 +03:00
Dmitry Stepanov 9be5d8d485 use ascii format for engine assets by default
- improves mergeability of the assets
2025-04-13 23:07:38 +03:00
Dmitry Stepanov 88d870c8f0 visitor: fixed nodes reading in ascii mode
- fixed naming of methods
- more tests
- test ascii reading/writing correctness
2025-04-12 20:35:06 +03:00
Dmitry Stepanov 10a4dc048b use trait upcasting and remove as_any for ResourceData
- bumped msrv to 1.86
2025-04-06 18:56:17 +03:00
Dmitry Stepanov ad0bbc6ed8 more concise naming for Reflect methods 2025-03-14 20:01:13 +03:00
Dmitry Stepanov b84ed6f6d8 removed redundant codegen for field/field_mut methods 2025-03-14 18:18:31 +03:00
Dmitry Stepanov b3956c0a5c removed Relfect::fields/fields_mut methods
- these are now redundant and basically a short version of `Reflect::fields_info/fields_info_mut` methods
2025-03-13 23:20:09 +03:00
Dmitry Stepanov c171b68830 Reflect::fields_info_mut + optimizations
- allows iterating over fields while be able to mutate them
- reduced FieldInfoRef/Mut size even more to just a pointer+fat pointer
2025-03-13 20:52:28 +03:00
Dmitry Stepanov f59d2fe783 split FieldInfo into two parts FieldInfo + FieldMetadata
- field metadata is now stored as a static variable and passed as a reference to FieldInfo
- speeds up fields iteration (especially with large hierarchies) by reducing amount of required stack-allocated memory and memory writes. Now it requires only 24 bytes, instead of ~96 bytes
- api-wise everything remains mostly unchanged (thanks to deref into FieldMetadata)
2025-03-12 20:08:25 +03:00
Dmitry Stepanov d22a18ce95 removed owner_type_id field from FieldInfo
- it was used only once in the entire project and mostly useless in other cases
- this change allows to decouple field metadata from its actual values, thus speeding up fetching of fields info
2025-03-11 23:01:47 +03:00
Dmitry Stepanov 77ecf4faaf removed redundant type_name field from FieldInfo
- it can be fetched "on-demand" using `info.value.type_name()`
- speeds up fields access and iteration a bit
2025-03-11 22:51:14 +03:00