Size: a a a

2021 January 26

DK

Danila Kiver in rust_offtopic
Гляну, мб у меня есть
источник

DK

Danila Kiver in rust_offtopic
Пингани вечером
источник

KG

Konstantin Gribov in rust_offtopic
Danila Kiver
Пингани вечером
Ок, спасибо
источник

EG

Emmanuel Goldstein in rust_offtopic
А где-нибудь есть лог, почему сигнатура Drop выглядит так, как она выглядит?
источник

EG

Emmanuel Goldstein in rust_offtopic
Решение с drop(&mut self) очень неоднозначное — drop(self) было бы во многом лучше
источник

r

red75prime in rust_offtopic
Emmanuel Goldstein
Решение с drop(&mut self) очень неоднозначное — drop(self) было бы во многом лучше
источник

KG

Konstantin Gribov in rust_offtopic
Emmanuel Goldstein
Решение с drop(&mut self) очень неоднозначное — drop(self) было бы во многом лучше
В варианте drop(self) эту функцию пришлось бы делать магической (хотя сам трейт уже), чтобы не дергать дроп повторно при выходе self из области видимости.
Если хочется именно историю - проще спросить на irlo
источник

EG

Emmanuel Goldstein in rust_offtopic
Konstantin Gribov
В варианте drop(self) эту функцию пришлось бы делать магической (хотя сам трейт уже), чтобы не дергать дроп повторно при выходе self из области видимости.
Если хочется именно историю - проще спросить на irlo
drop(self) мог бы не иметь права передавать self куда-нибудь по значению или давать дожить до конца скоупа
источник

EG

Emmanuel Goldstein in rust_offtopic
Таким образом, единственным вариантом было бы деконструировать self через паттерн-матчинг
источник

EG

Emmanuel Goldstein in rust_offtopic
Такая схема позволила бы деструктору иметь поля в собственности, а не только мутабельные ссылки на них
источник

EG

Emmanuel Goldstein in rust_offtopic
В частности тогда бы деструктор мог определять порядок дропа полей в явном виде, например
источник

EG

Emmanuel Goldstein in rust_offtopic
Кроме того, ушло бы правило «Drop-типы нельзя деконструировать через паттерн-матчинг» и «drop нельзя вызывать вручную»
источник

r

red75prime in rust_offtopic
Emmanuel Goldstein
Кроме того, ушло бы правило «Drop-типы нельзя деконструировать через паттерн-матчинг» и «drop нельзя вызывать вручную»
Хм. А как первое правило связано с &mut self?
источник

EG

Emmanuel Goldstein in rust_offtopic
red75prime
Хм. А как первое правило связано с &mut self?
Первое правило не связано напрямую, но оно само по себе не очень нужно, и если его убрать, то drop(self) будет менее специальным
источник

EG

Emmanuel Goldstein in rust_offtopic
А вот из полезного — кажется, такая сигнатура обошла бы много головной боли с dropck
источник

EG

Emmanuel Goldstein in rust_offtopic
В частности, #[may_dangle] в такой схеме, кажется, не нужен вообще.
источник

EG

Emmanuel Goldstein in rust_offtopic
Жаль, что вряд ли мы увидим такие радикальные изменения даже со сменой редакции.
источник

D

Dima in rust_offtopic
там еще Pin нарисовался, как эта схема с ним будет работать?
источник

EG

Emmanuel Goldstein in rust_offtopic
Dima
там еще Pin нарисовался, как эта схема с ним будет работать?
А что меняется?
источник

EG

Emmanuel Goldstein in rust_offtopic
Pin просто дропает своё единственное поле и всё
источник