VecPropertyEditor and ArrayPropertyEditor requires that item T: Inspect + ..., which is very restrictive is makes impossible to correctly handle collections of simple types (f32, u32, String). Currently the engine provides hacky implementations for standard types, where each implementation returns self as a "subproperty" of a type.
More to that: these editors do not use registered editors to generate editors for items, for example having a VecPropertyEditor<Foo> will not use FooPropertyEditor (let's assume it exists), but instead it will create Inspector widget for every item. This is very annoying and forces to create wrappers that have single field. In case of wrapper, generated Inspector will use correct property editor (FooPropertyEditor).
VecPropertyEditor
andArrayPropertyEditor
requires that itemT: Inspect + ...
, which is very restrictive is makes impossible to correctly handle collections of simple types (f32
,u32
,String
). Currently the engine provides hacky implementations for standard types, where each implementation returnsself
as a "subproperty" of a type.More to that: these editors do not use registered editors to generate editors for items, for example having a
VecPropertyEditor<Foo>
will not useFooPropertyEditor
(let's assume it exists), but instead it will createInspector
widget for every item. This is very annoying and forces to create wrappers that have single field. In case of wrapper, generatedInspector
will use correct property editor (FooPropertyEditor
).