Rust 中文社区一直在不断发展,持续地向外输出:
来自社区的张汉东老师对文章进行了总结:
链接:https://blog.rust-embedded.org/this-year-in-embedded-rust-2021/
GitHub:https://github.com/rust-embedded/wg
另外,也有一些新的创业公司,比如这个专注于 GUI 的 Sixty FPS,该 GUI 工具库面向全平台,目标之一是取代 Qt。2022 年他们可能要长足支持嵌入式。
链接:https://sixtyfps.io/blog/2021-in-review.html
GitHub:https://github.com/sixtyfpsui/sixtyfps
ndarray::parallel
的多线程,返回任何错误。链接:https://towardsdatascience.com/nine-rules-for-writing-python-extensions-in-rust-d35ea3a4ec29
可以使用单个定义来定义多个不同版本的 Struct,并生成一个枚举来统一它们:
use superstruct::superstruct;
# V1
pub struct Request {
start: u16,
}
# V2
pub struct Request {
start: u16,
end: u16,
}
# Superstruct
#[superstruct(variants(V1, V2))]
pub struct Request {
pub start: u16,
#[superstruct(only(V2))]
pub end: u16,
}
#[cfg_attr(test, test)]
fn main() {
let r1 = Request::V1(RequestV1 { start: 0 });
let r2 = Request::V2(RequestV2 { start: 0, end: 10 });
assert_eq!(r1.start(), r2.start());
assert_eq!(r1.end(), Err(()));
assert_eq!(r2.end(), Ok(&10));
}
文档:https://sigp.github.io/superstruct/intro.html
支持查询、插入、更新和删除。以查询为例,使用方法如下:
use qoo::base::*;
use qoo::select::*;
fn main() {
let select_query =
SelectBuilder::select(["col0", "col1"].to_vec())
.columns(["col2", "col3"].to_vec())
.from("table1")
.wheres("id >= 100");
assert_eq!(
select_query.to_sql(),
"select col0, col1, col2, col3 from table1 where id >= 100".to_string()
);
}
GitHub:https://github.com/ddddddO/qoo
作者使用一个带有简单单元测试的 repo 增强对这个主题的理解。其中,包含了一个简单例子和一个复杂例子。
GitHub:https://github.com/blasrodri/atomic-story
本次发布的主要内容:
Kira 是用 Rust 编写的用于游戏开发的音频库,并且具有不太常见的功能,例如平滑的补间参数和声音的精确定时,作者正在用它来制作一个动态生成的音乐游戏。
From 日报小组 冬杰 长琴