< 返回版块

Cupnfish 发表于 2023-07-28 00:27

推出通用的derive宏portrait

portrait库发布了derive_delegate derive filler,它可以为任何拥有#[portrait::make]属性的trait派生出trait实现,通过委托给struct/enum的所有字段来实现trait。这可以看作是许多标准库derive宏的通用版本。

derive_delegate的行为类似于标准库中的许多宏。一个全能的示例代码是:

#[portrait::make] 
trait Foo {
  // trait定义
}

// 给具体的字段类型实现Foo这个trait
impl Foo for i32 {
 // trait实现
}

#[portrait::derive(Foo with portrait::derive_delegate)]
struct Fields {
   // 字段定义
}

这样就可以自动为Fields派生Foo的实现,通过委托给其字段。

更多信息见:derive_delegate通用derive宏 ↗: https://users.rust-lang.org/t/derive-delegate-the-generic-derive-macro-for-all-traits/97570

并行链接器mold 2.0发布

mold并行链接器发布2.0版本。它可以显著加速Rust编译时的链接过程。此外,mold的许可证也从AGPL改为了更宽松的MIT。

mold linker利用并行化可以大幅提升链接速度,对于大型代码库编译时间的改善尤为明显。

更多信息见:mold 2.0发布 ↗: https://www.reddit.com/r/rust/comments/15ahlpy/mold_parallel_linker_200_released_mold/

Bazel构建Rust工作空间

本文介绍了如何使用Bazel构建Rust工作空间,其中涉及到配置Bazel工作空间、编写BUILD文件、处理依赖等内容。

文章以ripgrep项目为例,详细介绍了如何从Cargo移植到Bazel,包括构建和测试二进制、编写BUILD文件、处理外部依赖等。这为打造大型Rust项目提供了一种更灵活可扩展的构建系统选择。

更多信息见:Bazel构建Rust工作空间 ↗: https://www.tweag.io/blog/2023-07-27-building-rust-workspace-with-bazel/

C++协程与Rust Zero-cost Abstraction比较

本文请求对C++协程提案P2300和Rust的Zero-cost抽象进行详细比较,包括相似点和不同点等。

文章分析了两者在延迟计算、组合futures、运行时开销等方面的区别,以帮助读者深入理解P2300提案。

更多信息见:P2300和Rust零成本抽象比较 ↗: https://www.reddit.com/r/cpp/comments/15aqz09/request_a_detailed_comparison_between_p2300_and/

Rust周报第505期发布

Rust周报的最新505期发布,其中收录了许多Rust社区的近期动态,包括RFC批准、新CRATE推荐、会议信息等。

周报为跟进Rust社区进展提供了很好的渠道。

更多信息见:Rust周报505期 ↗: https://this-week-in-rust.org/blog/2023/07/26/this-week-in-rust-505/

请关注我们的更新,以便了解更多有关Rust的新闻和动态!

From 日报小组 Cupnfish

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页