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 在 游戏开发 中排名
1,030 每月下载次数
在 6 个Crate中使用 (通过 godot-core)
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
,那么我们就永远无法违反a
和b
的别名规则。而且,由于b
是从a
派生出来的(也就是说,b
是通过某种方式从a
创建的,比如将a
转换为一个原始指针,然后转换回一个引用b
),那么a
不会被b
的访问所无效化。
依赖项
~0–620KB
~12K SLoC