【Rust日报】2023-05-02 borrowme: Rust 中缺失的复合借用类型

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);

github 地址: https://github.com/udoprog/borrowme

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 地址: https://github.com/bytebeamio/rumqtt/

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

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

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

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

博客原文: https://getcode.substack.com/p/fun-and-hackable-tensors-in-rust

github 地址: https://github.com/kurtschelfthout/tensorken

-- From 日报小组 RustPlumber

社区学习交流平台订阅:

  • Rust.cc 论坛: 支持 rss

  • 微信公众号:Rust 语言中文社区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值