3 个版本
0.1.3 | 2022年10月31日 |
---|---|
0.1.2 | 2022年5月27日 |
0.1.1 |
|
0.1.0 | 2022年5月25日 |
#19 in #事件处理
44KB
850 代码行数,不包括注释
火棘
一个相对简单的应用程序状态、路由和事件处理的库式框架。
用法
use firespine::{Backbone, NodeHandler};
#[derive(Debug)]
struct MyNodeHandler;
impl NodeHandler for MyNodeHandler {
// Override handler methods as needed!
// For example, to receive events:
fn handle_event<'e>(
&'e mut self,
event: &'e mut EventWrapper,
context: &'e mut NodeContext,
) {
if let Some(my_event) = event.downcast_ref::<MyEvent>() {
// Handle the event! :D
}
}
}
#[derive(Debug)]
struct MyEvent;
impl Event for MyEvent {}
fn main() {
let mut backbone = Backbone::from(MyNodeHandler);
// 'navigate' to a path in the backbone.
backbone.navigate("/local/world-3/play");
loop {
// Regularly call `update` in your mainloop...
backbone.update().expect("backbone error");
/// ...and fire away as you wish!
backbone.get_context().process_event(&mut MyEvent);
}
}
依赖
~0.7–1MB
~18K SLoC