Implement Reflect for Box<dyn Reflect>
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 161
Description
## What problem does this solve or what need does it fill?
Boxed Reflect trait objects should themselves be reflectable
## What solution would you like?
Implement `Reflect` for `Box`.
## What alternative(s) have you considered?
None.
## Additional context
Working snippet from @Davier:
```rust
unsafe impl Reflect for Box {
fn type_name(&self) -> &str {
self.deref().type_name()
}
fn any(&self) -> &dyn Any {
self.deref().any()
}
fn any_mut(&mut self) -> &mut dyn Any {
self.deref_mut().any_mut()
}
fn apply(&mut self, value: &dyn Reflect) {
self.deref_mut().apply(value)
}
fn set(&mut self, value: Box) -> Result<(), Box> {
self.deref_mut().set(value)
}
fn reflect_ref(&self) -> ReflectRef {
self.deref().reflect_ref()
}
fn reflect_mut(&mut self) -> ReflectMut {
self.deref_mut().reflect_mut()
}
fn clone_value(&self) -> Box {
self.deref().clone_value()
}
fn reflect_hash(&self) -> Option {
self.deref().reflect_hash()
}
fn reflect_partial_eq(&self, value: &dyn Reflect) -> Option {
self.deref().reflect_partial_eq(value)
}
fn serializable(&self) -> Option {
self.deref().serializable()
}
}
```
Contributor guide
Assessment
This issue has not been assessed yet.