данных?
Что за трейт Swap? Трейт, который реализовал бы переписывание указателей в запиненых self-referential структурах при свопе? Так это можно самому сделать
Не, своп данных для пинненых указателей
Это нарушает контракт пина
Ну так я про это и говорю. Оверрайд контракта, если знаешь, что делаешь
Pin::into_inner_uncheked() есть же
Так все равно std::mem::swap не даст, хоть ты извернись
Почему не даст? Даст. https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=683a7110c4c674b802184571639f0374 as_mut() там, чтобы пин не поглощался. Но если тип можно перемещать, то лучше сделать его Unpin и использовать Pin::into_inner()
Ты не понял, я хочу, чтобы mem::swap можно было переопределять через трейты, чтобы я свап мог сделать как ты написал)
Обсуждают сегодня