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