Что там с trait upcasting: год спустя

#Приветствую #Rust #Методы #Крутанёшь #GitHub
Что там с trait upcasting: год спустя

Приветствую. В Rust есть целый класс костылей, который лежит буквально в каждом крейте с API на dyn старше пары лет. Методы вида as_super , as_debug , into_dyn_display . Крутанёшь поиск по большим репозиториям на GitHub, найдёшь такое тысячами. Каждый делает одну и ту же тупую вещь: возвращает тот же самый &self , только под нужным трейт-объектом. Встроенно очевидная операция, которую больше десяти лет не могли завезти в язык. С Rust 1.86 (3 апреля 2025) все эти костыли стали не нужны. Trait upcasting наконец стабилизирован: &dyn Sub спокойно кастится в &dyn Super , если trait Sub: Super . Причём стабилизировали не с первого раза. В конце 2023-го фичу мерджили, потом откатывали из-за двух багов в соундности, потом чинили, потом снова находили баги. Только к весне 2025 получилось выкатить окончательно. Прошёл год стабильной жизни с фичей, экосистема переварила, паттерны поменялись. Разберём: как расширили vtable под эту штуку (спойлер: ещё в 2021-м, за четыре года до самой стабилизации)

Приветствую. В Rust есть целый класс костылей, который лежит буквально в каждом крейте с API на dyn старше пары лет. Методы вида as_super, as_debug, into_dyn_display.

Крутанёшь поиск по большим репозиториям на GitHub, найдёшь такое тысячами. Каждый делает одну и ту же тупую вещь: возвращает тот же самый &self, только под нужным трейт-объектом. Встроенно очевидная операция, которую больше десяти лет не могли завезти в язык.

С Rust 1.86 (3 апреля 2025) все эти костыли стали не нужны. Trait upcasting наконец стабилизирован: &dyn Sub спокойно кастится в &dyn Super, если trait Sub: Super. Причём стабилизировали не с первого раза. В конце 2023-го фичу мерджили, потом откатывали из-за двух багов в соундности, потом чинили, потом снова находили баги. Только к весне 2025 получилось выкатить окончательно.

Прошёл год стабильной жизни с фичей, экосистема переварила, паттерны поменялись. Разберём: как расширили vtable под эту штуку (спойлер: ещё в 2021-м, за четыре года до самой стабилизации), сколько багов в соундности нашли на nightly и в чём была суть, почему dyn MyAny: Any теперь одна из самых частых идиом, и почему Vec<Box<dyn Sub>> в Vec<Box<dyn Super>> всё равно не летит.

Похожие статьи

Goldman Sachs собирается купить Neos за $2,25 млрд для экспансии на рынке ETF Ведомости
Ведомости

Goldman Sachs собирается купить Neos за $2,25 млрд для экспансии на рынке ETF

Подробности читайте на vedomosti.ru

Ведомости
Складной Google Pixel 11 Pro Fold за 1900 долларов получил новый шарнир и меньшую батарею по сравнению с прошлогодней моделью iXBT.com
iXBT.com

Складной Google Pixel 11 Pro Fold за 1900 долларов получил новый шарнир и меньшую батарею по сравнению с прошлогодней моделью

Зато новая платформа и меньшая масса После обычных Pixel 11 и моделей Pro компания Google также анонсировала складной Pixel 11 Pro Fold. Как и моноблочные модели, эта особо не изменилась относительно ...

iXBT.com
Американский журналист обвинил Запад в разрушении Украины Lenta.ru
Lenta.ru

Американский журналист обвинил Запад в разрушении Украины

Украина — это не самостоятельное государство. Запад использует Киев, чтобы нанести вред России, и тем самым разрушает республику

Lenta.ru
Представлен Google Pixel 11, который подорожал, но лишь условно iXBT.com
iXBT.com

Представлен Google Pixel 11, который подорожал, но лишь условно

Младшая версия теперь имеет 256 ГБ памяти Компания Google представила свои новые смартфоны линейки Pixel 11. Они были почти полностью рассекречены до анонса, но теперь всё официально, к тому же теперь...

iXBT.com
Спорт-Экспресс
Спорт-Экспресс

Тамбовский «Спартак» выбил «СКА-Ростов» из FONBET Кубка России

Тамбовский «Спартак» на своем поле победил «СКА-Ростов» во втором раунде Пути регионов FONBET Кубка России.

Спорт-Экспресс
«ВТБ Мои Инвестиции» исключили из топ-10 акции «Транснефти» РБК
РБК

«ВТБ Мои Инвестиции» исключили из топ-10 акции «Транснефти»

Акции «Транснефти» закрыли дивидендный гэп только на 51%, отметили эксперты «ВТБ Мои инвестиции». По их мнению, это слабее динамики других бумаг

РБК