Cell для массива теперь виден как массив Cell

16.08.2025

Стабилизирован метод Cell::as_array_of_cells: он позволяет получить ссылку на массив ячеек из Cell<[T; N]>, то есть работать с элементами по отдельности.

Зачем

Cell даёт изменение значения по ссылке без unsafe и без блокировок — удобно для внутренних изменяемых счётчиков и флагов. Но если Cell оборачивает массив, обратиться к отдельному элементу нельзя: обёртка Cell видна только как единое целое. as_array_of_cells возвращает &[Cell<T>; N], где каждый элемент доступен отдельно, и сделано это без unsafe.

Это заметно упрощает структуры вида «флаги в одном месте»: обёртка остаётся, но работа с отдельными флагами становится обычным делом без преобразования типов.

Автор — jsimmons, отслеживание — rust-lang/rust#88248.

Оригинал

Stabilize as_array_of_cells

Упоминаний: 1 · Просмотров: 5