borrowme: Rust 中缺失的复合借用类型
ToOwned
和 Borrow
是一组 trait,常常用于 &str
和 String
这些简单类型的互相转换,而 borrowme 定义了自己的 ToOwned
和 Borrow
traits,可以在带有生命周期的类型和不带生命周期的类型之间实现快速转换,适用范围更加广泛。
这个 crate 还提供了一个 #[borrowme]
属性宏,可以帮助快速我们实现这个功能。
下面是一个代码实例:
use std::collections::HashMap;
#[borrowme]
#[derive(Debug, Clone)]
struct Word<'a> {
text: &'a str,
lang: Option<&'a str>,
examples: Vec<String>,
}
#[borrowme]
struct Dictionary<'a> {
words: HashMap<&'a str, Word<'a>>,
}
let dictionary = Dictionary {
/* .. */
};
let owned_dictionary: OwnedDictionary = borrowme::to_owned(&dictionary);
let dictionary2: Dictionary<'_> = borrowme::borrow(&owned_dictionary);
rumqtt 新增对于 MQTT5 协议的支持
rumqtt 是 Rust 中 MQQT 协议(为 IoT 设备设计的消息协议)的客户端,力求简单、健壮和高效,其主要包含了两个库:
- rumqttc: 一个高层次的,易于使用的 mqqt 客户端
- rumqttd: 一个更加高性能的,嵌入式 MQTT broker
近日其发布了 0.21.0 版本,新增了对 MQTT5 协议很多特性的支持,例如:
- Message Expiry Interval
- User Properties
- Request Response
- Topic Aliases
- Connect Properties
感兴趣的可以参考其 github 项目主页。
从头开始实现自己的 Tensor (WIP)
Tensorken 是一个有趣、可hack、GPU 加速的神经网络库,用 Rust 编写。
它旨在从程序员的角度理解深度学习,通过从头开始构建深度学习框架来实现这一目标。它包含基本的张量操作,可以在CPU和GPU上运行。
同时,这个库的作者还在更新博客,详细描述其实现思路。
-- From 日报小组 RustPlumber
社区学习交流平台订阅:
1
共 0 条评论, 1 页
评论区
写评论还没有评论