9 个重大版本更新

使用旧的 Rust 2015

0.10.0 2018年11月7日
0.9.0 2016年6月27日
0.8.0 2016年6月18日
0.5.0 2016年3月31日

#677 in 操作系统

每月 32 次下载

Apache-2.0

10KB
134

rust-handlers

一个简单的生成事件处理程序系统的宏。

用法

此宏使用了 interpolate_idents 插件并利用了特殊化功能,因此目前需要 rustc nighty。

要生成一个系统,请使用 handlers!

handlers_define_system! {
    <system name> {
        <handler name> {
            <signal>(<args>) => <slot>;
            ...
        }
        ...
    }
}

这将为系统中定义的每个处理程序定义一个系统结构体、一个对象特性和一个处理程序特性。系统将每个信号作为方法,将调用适当的槽位来调用该处理程序类型包含的每个对象的适当槽位。对象特性是特殊的,用于将系统中的每个对象转换为正确的特性类型。

要为系统创建对象,只需让它们实现您希望它们拥有的任何处理程序特性,然后使用 handlers_objects! 宏。这将实现一个对象特性,然后特殊化将完成其余所需的实现。

handlers_objects! { 
    <system name> {
        <object name>, ...
    }
}

要查看更好的用法示例,请参阅此存储库中的测试文件夹。

依赖关系

~11KB