< 返回版块

Jancd 发表于 2022-03-20 22:45

Tags:rust,news

Rust 的Unsafe Pointer类型需要大修

来自 gankra 的博文。作者经常思考 Rust 中的Unsafe Pointer问题。

作者写了一本关于 unsafe Rust 的书(编按:也就是大家常说的 ”unsafe rust黑魔法”):https://doc.rust-lang.org/nightly/nomicon,还有关于 Rust 指针的书(https://rust-unofficial.github.io/too-many-lists)。同时,作者重新设计了 Rust 的指针 API,并为不安全的堆分配缓冲区设计了标准库的抽象,并维护替代的 Vec 布局。

作者经常思考 Rust 中Unsafe Pointer的问题,并表示讨厌它们。但不要误会作者的意思,他认为自己的所有工作都让它们变得更好,但它们仍然存在严重缺陷。事实上,他们已经变得更糟了。不是因为 API 发生了变化,而是因为当我处理这些东西时,我们对指针应该如何工作的理解太天真了。

本文分为 3 个部分:概念背景、当前设计的问题和提出的解决方案。

原文链接:https://gankra.github.io/blah/fix-rust-pointers/

Rust 中#[doc]属性的改进

从 Rust1.54 开始,我们现在可以在属性中使用类似函数的宏。 #[doc] 属性有很多优点,让我们来看看其中的一些!

例如只需在lib.rs文件的顶部编写 README 即可:

#![doc = include_str!("README.md")]

同时 README 文件现在将成为 crate 的文档,并且其中的代码示例也将被测试。

更多详情请看原文:https://blog.guillaume-gomez.fr/articles/2021-08-03+Improvements+for+%23%5Bdoc%5D+attributes+in+Rust

godot-rust 0.10 版本发布

godot-rust是一个Rust库,为Godot游戏引擎实现本地绑定。这允许你在Godot中开发游戏或其他应用程序,同时受益于Rust的优势,如其类型系统、可扩展性和性能。

项目地址:https://github.com/godot-rust/godot-rust


From 日报小组 @Jancd

社区学习交流平台订阅:

评论区

写评论
amorphobia 2022-03-23 11:40

关于 #[doc] 属性,如果需要文档内链接,一般情况原本可以写

//! Struct: [`MyStruct`]

这样在 docs.rs 里面就能自动加上链接,而且对于不同版本的文档,也会生成自己版本的链接。

但是用 #![doc = include_str!("README.md")] 的话,在 README.md 里面只能显式地写出这个链接是什么,比如:

Struct: [`MyStruct`](https://docs.rs/my-crate/latest/my_crate/struct.MyStruct.html)

这样对于不同的版本,都会跳到 latest. 不知道有没有更通用的方法。

1 共 1 条评论, 1 页