godot-cell 0.2.0

Internal crate used by godot-rust
docs.rs failed to build godot-cell-0.2.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: godot-cell-0.0.0
# Internal crate of [**godot-rust**](https://godot-rust.github.io) Do not depend on this crate directly, instead use the `godot` crate. No SemVer or other guarantees are provided. # Contributor docs A re-entrant cell implementation which allows for `&mut` references to be reborrowed even while `&mut` references still exist. This is done by ensuring any existing `&mut` references cannot alias the new reference, and that the new reference is derived from the previous one. This emulates rust's system for function calls. i.e `my_func(&mut borrowed)` creates a second `&mut` reference inside the function. Instead of directly using the concept of `aliasing` pointers, we use the term `accessible` instead. A reference (or other pointer) to some value is considered accessible when it is possible to either read from or write to the value it points to without using `unsafe`. Importantly, if we know that a reference `a` is inaccessible, and then we create a new reference `b` derived from `a` to the same value, then we know for sure that `b` won't alias `a`. This is because aliasing in rust is based on accesses, and if we never access `a` then we cannot ever violate aliasing for `a` and `b`. And since `b` is derived from `a` (that is, `b` was created from `a` somehow such as by casting `a` to a raw pointer then to a reference `b`), then `a` won't get invalidated by accesses to `b`.