4个版本

0.1.3 2024年7月22日
0.1.2 2024年7月15日
0.1.1 2024年6月24日
0.0.0 2023年12月6日

2117游戏开发 中排名

Download history 95/week @ 2024-06-18 230/week @ 2024-06-25 214/week @ 2024-07-02 293/week @ 2024-07-09 308/week @ 2024-07-16 271/week @ 2024-07-23 129/week @ 2024-07-30

1,030 每月下载次数
6 个Crate中使用 (通过 godot-core)

MPL-2.0 许可协议

60KB
1K SLoC

godot-rust 的内部Crate

不要直接依赖此Crate,而是使用 godot Crate。不提供SemVer或其他保证。

贡献者文档

一个可重入的cell实现,允许在仍然存在 &mut 引用时重新借用 &mut 引用。

这是通过确保任何现有的 &mut 引用不能与新的引用发生冲突,并且新的引用是从上一个引用派生出来的来实现的。

这模仿了rust的函数调用系统。即 my_func(&mut borrowed) 在函数内部创建第二个 &mut 引用。

我们不是直接使用aliasing指针的概念,而是使用accessible这个术语。当某个值的引用(或其他指针)在没有使用unsafe的情况下可以读取或写入它所指向的值时,我们认为它是可访问的。重要的是,如果我们知道一个引用a是不可访问的,然后我们从a创建一个新的引用b指向相同的值,那么我们可以肯定b不会与a别名。这是因为Rust中的别名是基于访问的,如果我们从未访问过a,那么我们就永远无法违反ab的别名规则。而且,由于b是从a派生出来的(也就是说,b是通过某种方式从a创建的,比如将a转换为一个原始指针,然后转换回一个引用b),那么a不会被b的访问所无效化。

依赖项

~0–620KB
~12K SLoC