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