Rust's borrow-checker is evolving beyond simple shared and mutable borrows. This exploration presents a systematic analysis of proposed reference types including owning references (&own), uninitialized references (&uninit), and pinning variants (&pin, &pin mut, &pin own). Three comprehensive tables detail what operations are permitted with each reference type, what restrictions apply to borrowed places while loans are live, and what happens after loans expire. The owning reference provides full ownership without controlling allocation, the uninitialized reference enables safe initialization patterns, and pinning references enforce memory stability guarantees crucial for async Rust.
Table of contents
The owning reference &own TThe uninitialized reference &uninit TThe pinning references &pin T / &pin mut T / &pin own T7 Comments
Sort: