В плане Beyond the & проект Rust предлагает расширить возможности умных указателей, типов, которые управляют доступом к данным через указатель. Авторы хотят упростить временный доступ функции к данным и доступ к отдельным полям структуры через пользовательские указатели, а также создание значений сразу по окончательному адресу в памяти.
Сейчас встроенные ссылки умеют то, что пользовательские указатели не могут повторить. Автоматическую передачу временного доступа планируют расширить на пользовательские типы в 2026–2027 годах.
Над доступом к полям и созданием значений на месте планируют работать в 2026–2028 годах.
В разборе LWN, издания о Linux и свободном ПО, есть пример программы с кэшем.
Проверка утверждений:
- Проект Rust планирует сделать пользовательские умные указатели такими же удобными, как встроенные ссылки, добавив автоматическое заимствование, доступ к отдельным полям и создание значений сразу по окончательному адресу в памяти. (подтверждено самой публикацией: доказательство; «User-defined smart pointers that are truly indistinguishable from built-in references in terms of syntax and ergonomics — automatic reborrowing for any pointer type that opts in, field projection with full borrow-checker integration, and language-level in-place initialization.»)
- Сейчас встроенные ссылки Rust имеют возможности, которые пользовательские умные указатели не могут повторить. (подтверждено самой публикацией: доказательство; «However, Rust’s built-in reference types ( &T and &mut T ) have special capabilities that user-defined smart pointers cannot replicate:»)
- Расширить автоматическое заимствование на пользовательские типы планируют в 2026–2027 годах, а работу над доступом к полям и созданием значений на месте — в 2026–2028 годах. (подтверждено самой публикацией: доказательство; «Map the field projection design space 2026-2028 Explore the virtual places approach, document it in the beyond-refs wiki, formalize borrow checker integration, and build a compiler experiment. Implement Supertrait auto impl 2026 Automatically implement supertraits when a subtrait is implemented, enabling trait hierarchy refactoring In-place initialization 2026-2028 Align on a language approach for creating values directly at their final location without moving Reborrow traits 2026-2027 Extend automatic reborrowing to user-defined types like Pin<&mut T> and custom smart pointers»)
- LWN опубликовало разбор проекта Beyond the & с примером программы с кэшем. (подтверждено самой публикацией: доказательство; «He has been working on this problem all through 2026, Mandry said, alongside several other interested members of the language team, under the project name “Beyond the &” . It took a good deal of thought, but the design that they have arrived at should allow a substantially simpler mental model of how pointers and references work. To illustrate the problem that this design solves, he put up an example of a simplified Rust program that calculates some dynamic content and caches it in a hash map. The example uses Rust’s map-entry API, which provides a function called or_insert_with() that takes a callback to populate the hash-map entry if it is empty.»)
Публикации:
Первоисточники:
- https://goals.rust-lang.org/2026/roadmap-beyond-the-ampersand.html
- https://rust-lang.github.io/beyond-refs/
оценка 56,4 из 100 · тип: разбор