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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// Copyright 2022 the Xilem Authors
// SPDX-License-Identifier: Apache-2.0
// After you edit the crate's doc comment, run this command, then check README.md for any missing links
// cargo rdme --workspace-project=xilem_core
//! Xilem Core provides primitives which are used by [Xilem][] (a cross-platform GUI toolkit) and [Xilem Web][] (a web frontend framework).
//! If you are using Xilem, [its documentation][xilem docs] will probably be more helpful for you. <!-- TODO: In the long-term, we probably also need a book? -->
//!
//! Xilem apps will interact with some of the functions from this crate, in particular [`memoize`][].
//! Xilem apps which use custom widgets (and therefore must implement custom views), will implement the [`View`][] trait.
//!
//! If you wish to implement the Xilem pattern in a different domain (such as for a terminal user interface), this crate can be used to do so.
//! Though, while Xilem Core should be able to support all kinds of domains, the crate prioritizes the ergonomics for users of Xilem.
//!
//! # Hot reloading
//!
//! Xilem Core does not currently include infrastructure to enable hot reloading, but this is planned.
//! The current proposal would split the application into two processes:
//!
//! - The app process, which contains the app state and create the views, which would be extremely lightweight and can be recompiled and restarted quickly.
//! - The display process, which contains the widgets and would be long-lived, updating to match the new state of the view tree provided by the app process.
//!
//! # Quickstart
//!
//! <!-- TODO? -->
//!
//! # `no_std` support
//!
//! Xilem Core supports running with `#![no_std]`, but does require [`alloc`][] to be available.
//!
//! [Xilem]: https://crates.io/crates/xilem
//! [Xilem Web]: https://crates.io/crates/xilem_web
//! [xilem docs]: https://docs.rs/xilem/latest/xilem/
//! [Zulip]: https://xi.zulipchat.com/#narrow/stream/354396-xilem
// LINEBENDER LINT SET - lib.rs - v3
// See https://linebender.org/wiki/canonical-lints/
// These lints shouldn't apply to examples or tests.
// These lints shouldn't apply to examples.
// Targeting e.g. 32-bit means structs containing usize can give false positives for 64-bit.
// END LINEBENDER LINT SET
// TODO: Remove any items listed as "Deferred"
extern crate alloc;
pub use anymore;
pub use MessageContext;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;