< 返回版块

rust 日报 babpstep 发表于 2023-05-02 23:14

borrowme: Rust 中缺失的复合借用类型

ToOwnedBorrow 是一组 trait,常常用于 &strString 这些简单类型的互相转换,而 borrowme 定义了自己的 ToOwnedBorrow 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);

github 地址

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 项目主页。

githuib 地址

从头开始实现自己的 Tensor (WIP)

Tensorken 是一个有趣、可hack、GPU 加速的神经网络库,用 Rust 编写。

它旨在从程序员的角度理解深度学习,通过从头开始构建深度学习框架来实现这一目标。它包含基本的张量操作,可以在CPU和GPU上运行。

同时,这个库的作者还在更新博客,详细描述其实现思路。

博客原文 github 地址

-- From 日报小组 RustPlumber

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页