wip: move away from patch machine

This commit is contained in:
Jonathan Kelley 2021-06-19 20:34:52 -04:00
parent 62ae5d3bb9
commit 91f1b00517

View file

@ -438,6 +438,8 @@ abstract the real dom
```rust ```rust
struct VirtualDom<Dom: RealDom>
trait RealDom { trait RealDom {
type Node: RealNode; type Node: RealNode;
fn get_node(&self, id: u32) -> &Self::Node; fn get_node(&self, id: u32) -> &Self::Node;
@ -454,7 +456,8 @@ trait RealNode {
fn set_attr(&mut self, name, value); fn set_attr(&mut self, name, value);
fn set_class(&mut self); fn set_class(&mut self);
fn remove_attr(&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> { impl VirtualDom<Dom: RealDom> {