diff --git a/notes/SOLVEDPROBLEMS.md b/notes/SOLVEDPROBLEMS.md index 1329ab64..6a00a180 100644 --- a/notes/SOLVEDPROBLEMS.md +++ b/notes/SOLVEDPROBLEMS.md @@ -438,6 +438,8 @@ abstract the real dom ```rust +struct VirtualDom + 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(&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 {