У Pin, Pin и Pin появился Default

16.08.2025

Добавлены реализации Default для Pin<Box<T>>, Pin<Rc<T>> и Pin<Arc<T>>. Раньше значение по умолчанию можно было получить только через промежуточный тип.

Зачем

Чтобы создать значение по умолчанию для закреплённого владельца, приходилось сначала получить T::default(), упаковать его и только потом закрепить. Теперь Default реализован непосредственно для нужного типа, что снимает лишние шаги в коде, который заполняет структуры значениями по умолчанию.

Изменение требовало прогона crater-тестов: из-за #[fundamental] добавление Default для Box теоретически могло сломать существующий код. Проверка показала, что на практике это не происходит.

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

Оригинал

Add Default impls for Pinned Box, Rc, Arc

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