sauron_core/vdom/
templated_view.rs1use crate::dom::SkipDiff;
2use crate::vdom::Node;
3use std::fmt;
4use std::rc::Rc;
5
6pub struct TemplatedView<MSG> {
8 pub view: Box<Node<MSG>>,
10 pub skip_diff: Rc<dyn Fn() -> SkipDiff>,
12}
13
14impl<MSG> Clone for TemplatedView<MSG> {
15 fn clone(&self) -> Self {
16 Self {
17 view: self.view.clone(),
18 skip_diff: Rc::clone(&self.skip_diff),
19 }
20 }
21}
22
23impl<MSG> fmt::Debug for TemplatedView<MSG> {
24 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
25 f.debug_struct("TemplatedView")
26 .field("view", &self.view)
27 .field("skip_diff", &(self.skip_diff)())
28 .finish()
29 }
30}