10 个版本
0.1.22 | 2024 年 5 月 14 日 |
---|---|
0.1.21 | 2024 年 5 月 14 日 |
#538 在 Rust 模式
16KB
170 行
LowBulls
'低成本业务和 UI 逻辑分离器'
lowbull
是一个提供消息处理和事件监控框架的 Rust 包。
概述
此包定义了两个主要模块:core
和 watch
。core
模块包含消息处理的基础特性和类型,而 watch
模块提供了监控事件的实用工具。
用法
要使用 lowbull
,将其添加到您的 Cargo.toml
依赖项中
[dependencies]
lowbull = "0.1.11"
然后,您可以通过导入必要的模块在 Rust 代码中使用该包
use lowbull::core::LowBullMaster;
use lowbull::watch::LowBullWatcher;
use anyhow::Result;
// Your code here...
示例
以下是一个演示 lowbull 用法的简单示例
use lowbull::core::LowBullMaster;
use lowbull::watch::LowBullWatcher;
use lowbull::anyhow::Result;
// Define message types
#[derive(Debug, Hash, PartialEq, Eq, Clone, Copy)]
enum Message {
StartRender,
StopRender,
}
// Define response types
#[derive(Debug, Hash, PartialEq, Eq)]
enum Response {
None,
}
#[derive(Debug, Hash, PartialEq, Eq, Clone, Copy)]
enum ResourceKey {
GetTest,
GetRender,
}
#[derive(Debug, Hash, PartialEq, Eq)]
enum Resource {
Render(bool),
Test(bool),
}
// Implement a message handler
struct Master {
render: bool,
#[cfg(debug_assertions)]
handle_watcher: watch::LowBullWatcher<HandleKey>,
#[cfg(debug_assertions)]
resource_watcher: RefCell<watch::LowBullWatcher<ResourceKey>>,
}
impl LowBullMaster<HandleKey, Response, ResourceKey, Resource> for Master {
fn handle(&mut self, key: HandleKey) -> Result<Response> {
if cfg!(debug_assertions) {
self.handle_watcher.watch(key);
}
match key {
HandleKey::StartRender => {
self.render = true;
Ok(Response::None)
}
HandleKey::StopRender => {
self.render = false;
Ok(Response::None)
}
HandleKey::Empty => Ok(Response::None),
}
}
fn get_resource(&self, key: ResourceKey) -> Result<Resource> {
if cfg!(debug_assertions) {
self.resource_watcher.borrow_mut().watch(key);
}
match key {
ResourceKey::GetTest => Ok(Resource::Test(true)),
ResourceKey::GetRender => Ok(Resource::Render(self.render)),
}
}
}
// Your code here...
有关更多示例和详细用法,请参阅文档。
许可证
'lowbull' 采用 Apache 2.0 许可证。有关详细信息,请参阅 LICENSE。
依赖项
~130KB