1个不稳定版本
0.1.0 | 2021年5月27日 |
---|
#7 in #生命周期
14KB
226 行
derive-system
Rust版本的https://github.com/stuartsierra/component。
此库与lifecycle
一起使用。
它仍在开发中,许多功能尚未支持(未命名结构体、单元结构体、枚举等)。
用法
[dependencies]
lifecycle = "0.1.0"
system-derive = "0.1.0"
示例
use derive_system::System;
use lifecycle::Lifecycle;
struct App;
impl Lifecycle for App {
fn start(self) -> Self {
println!("App::start");
Self
}
fn stop(self) -> Self {
println!("App::stop");
Self
}
}
struct Scheduler;
impl Lifecycle for Scheduler {
fn start(self) -> Self {
println!("Scheduler::start");
Self
}
fn stop(self) -> Self {
println!("Scheduler::stop");
Self
}
}
struct Database;
impl Lifecycle for Database {
fn start(self) -> Self {
println!("Database::start");
Self
}
fn stop(self) -> Self {
println!("Database::stop");
Self
}
}
#[derive(System)]
pub struct ExampleSystem {
app: App,
scheduler: Scheduler,
database: Database,
}
fn main() {
let mut system = ExampleSystem {
app: App,
scheduler: Scheduler,
database: Database,
};
system = system.start();
let _ = system.stop();
}
这将输出
App::start
Scheduler::start
Database::start
Database::stop
Scheduler::stop
App::stop
依赖
~1.5MB
~36K SLoC