【Rust日报】2020-11-16 Rust 实现 Custom Events
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Rust日报】2020-11-16 Rust 实现 Custom Events,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1825字,纯文字阅读大概需要3分钟。
内容图文
Rust 实现 Custom Events
本文设计了一个比较巧妙的 Events 模式, 不由地让人想起 Qt
的 signal
.下面是核心代码以及使用例子. 具体更多细节可以参阅原文.
trait Sig {
type Data;
type Receiver: Rec;
fn emit(&self, data: Self::Data);
fn conn(&mut self) -> Self::Receiver;
fn disc(&mut self, i: usize);
}
trait Rec {
type Data;
fn on_emit(self, data: Self::Data);
fn get_id(&self) -> usize;
}
macro_rules! def_signal{
// ...
}
// 使用例子
struct MySigData {
num: i32,
}
fn main() {
def_signal!(
MySig, // Signal 名字
MyRec, // Receiver 名字
NySigData, // 预定义的数据类型
|this: MyRec, data: MySigData| { // 逻辑
println!("MySig receriver R{} - num: {}", this.id, data.num);
}
)
let mut ms2 = MySig::new();
let r1 = ms2.conn();
let r2 = ms2.conn();
ms2.emit(MySigData{ num: 3});
ms2.disc(r1.id);
ms2.emit(MySigData{ num: 9});
ms2.disc(r2.id);
}
输出结果
MySig receriver R1 - num: 3
MySig receriver R2 - num: 3
Removing Signal R1
MySig receriver R2 - num: 9
Removing Signal R2
原文链接:https://rossketeer.medium.com/custom-events-in-rust-c4e534b6b8cb
实体组件系统调度器设计
ECS (entity-component-system)
是一种广泛应用于游戏引擎中的设计理念.本文主要描述的是 ECS
相关的概念中的 Scheduler
.
- 什么是调度器?
- 动态调度.
- 静态调度.
- 实际情况考量, 例如 thread local 等.
- 调度器实际例子. 如
bevy_ecs
,yaks
等.
原文链接:https://ratysz.github.io/article/scheduling-1/
Crust of Rust: Sorting Algorithms
这是 Crust of Rust
最新的一期 Rust 视频: Sorting Algorithms
.Crust of Rust
是一系列质量比较高的 Rust 直播编码视频. 强烈推荐给各位小伙伴.
需要科学上网.油管连接:https://www.youtube.com/watch?v=h4RkCyJyXmM&feature=youtu.be
超快 terminal 录屏工具
t-rec
是一个 Rust 编写的超快的命令行录屏器, 可以生成 .gif
图片.github地址:https://github.com/sassman/t-rec-rs
--
From 日报小组 BobQin,FBI小白
内容总结
以上是互联网集市为您收集整理的【Rust日报】2020-11-16 Rust 实现 Custom Events全部内容,希望文章能够帮你解决【Rust日报】2020-11-16 Rust 实现 Custom Events所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。