wip: move away from patch machine
@@ -438,6 +438,8 @@ abstract the real dom
```rust
+struct VirtualDom<Dom: RealDom>
+
trait RealDom {
type Node: RealNode;
fn get_node(&self, id: u32) -> &Self::Node;
@@ -454,7 +456,8 @@ trait RealNode {
fn set_attr(&mut self, name, value);
fn set_class(&mut self);
fn remove_attr(&mut self);
- fn downcast_mut<T>(&mut self) -> Option<&mut T>;
+ // We can't have a generic type in trait objects, so instead we provide the inner as Any
+ fn raw_node_as_any_mut(&mut self) -> &mut dyn Any;
}
impl VirtualDom<Dom: RealDom> {
