3 个版本
0.0.5 | 2022 年 9 月 18 日 |
---|---|
0.0.4 | 2022 年 9 月 17 日 |
0.0.3 | 2022 年 9 月 17 日 |
36 在 #signals
16KB
344 行代码(不含注释)
信号
⚠️ 仅限 Nightly
用于调用多个回调。
受 QT 和 godot 启发。
要运行示例,您需要在终端中输入您想要运行的示例并键入 cargo run
lib.rs
:
Signal
是一个简单的用于连接回调的信号
AdvancedSignal
当您连接一个回调时,您可以设置另一个值
AdvanceSignal 方法是通过 macro advanced_method 创建的。
advanced_method!{
fn method(|){
}
}
具有状态的函数
use signals_kman::prelude::*;
pub struct State {
a: i32,
}
pub fn main() {
let mut signal = AdvancedSignal::<i32, ()>::new();
let state = State { a: 0 };
signal.connect(&method, vec![Box::new(state)]);
signal.call(1);
signal.call(2);
signal.call(1);
}
advanced_method! {
pub fn method(a: i32|state: State){
state.a += a;
println!("A: {}", state.a);
}
}