1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
use crate::{Cmd, Node};
#[derive(Clone, Copy, std::fmt::Debug, PartialEq)]
pub struct Measurements {
pub view_node_count: usize,
pub update_dispatch_took: f64,
pub build_view_took: f64,
pub dom_update_took: f64,
pub total_time: f64,
}
pub trait Component<MSG>
where
MSG: 'static,
{
fn init(&self) -> Cmd<Self, MSG>
where
Self: Sized + 'static,
{
Cmd::none()
}
fn style(&self) -> Vec<String> {
vec![]
}
fn update(&mut self, _msg: MSG) -> Cmd<Self, MSG>
where
Self: Sized + 'static;
fn view(&self) -> Node<MSG>;
fn measurements(&self, measurements: Measurements) -> Cmd<Self, MSG>
where
Self: Sized + 'static,
{
log::debug!("Measurements: {:#?}", measurements);
Cmd::no_render()
}
}