#callback #signal #signals

nightly signals-kman

回调库

3 个版本

0.0.5 2022 年 9 月 18 日
0.0.4 2022 年 9 月 17 日
0.0.3 2022 年 9 月 17 日

36#signals

GPL-3.0 许可证

16KB
344 行代码(不含注释)

信号

Crates.io

⚠️ 仅限 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);
    }
}

无运行时依赖

功能