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
54
55
56
57
58
59
60
61
//! The Elm-shaped application contract.
use crateElement;
use crateProxy;
use crateTheme;
/// An application: state, a pure view of it, and a message-driven update.
///
/// ```
/// use fenestra_core::*;
///
/// struct Counter {
/// n: i64,
/// }
///
/// #[derive(Clone)]
/// enum Msg {
/// Inc,
/// Dec,
/// }
///
/// impl App for Counter {
/// type Msg = Msg;
///
/// fn update(&mut self, msg: Msg) {
/// match msg {
/// Msg::Inc => self.n += 1,
/// Msg::Dec => self.n -= 1,
/// }
/// }
///
/// fn view(&self) -> Element<Msg> {
/// col().items_center().children([text(self.n.to_string())])
/// }
/// }
/// ```