tgoop.com/dereference_pointer_there/8289
Last Update:
#prog #rust #video
В проекте Rust for Linux используется свой собственный вариант Arc. Подробнее о том, почему не используется Arc из std, рассказывается в докладе Arc in the Linux Kernel от Alice Ryhl (серьёзно, на это есть вполне валидные причины). Одно из последствий подобного решения — через собственный Arc нельзя производить unsize coercion и вызов методов на трейт-объектах. В Rust есть трейты, через которое можно настраивать данное поведение (CoerceUnsized и DispatchFromDyn), но они нестабильны — главным образом потому, что их поведение может поменяться. Невозможность реализации этих трейтов на стабильной версии является заметной эргономической проблемой для кастомных указателей.
Для решения этой задачи в Rust недавно предложили #[derive(SmartPointer)]
, который будет стабильным и позволит использовать реализации этих трейтов на стальной версии. Разумеется, это не покрывает всех юзкейсов, но всё же позволит решить насущную проблему. И совсем недавно это предложение было принято к реализации.
BY Блог*
Share with your friend now:
tgoop.com/dereference_pointer_there/8289