бокс, а Т внутри него не можем мувать
Мы не хотим мувать T. Но чтобы T не мувался он должен лежать в куче. Поэтому все правильно.
Так почему Pin<Box<T>>, а не Box<Pin<T>>?
Потому что методы реализовывать надо на Pin<T>
Pin<T> это что-то странное, потому что в Pin надо класть умные указатели
То есть Pin<T> запрещает перемещать данные по Т указателю?
https://docs.rs/futures/latest/futures/macro.pin_mut.html
Он создает Pin<&mut T>, а не Pin<T>
не-не, я обратил внимание на "в Pin надо класть умные указатели"
ок, sed /"умные указатели"/"что-то умеющее в Deref"/g
Получается, можно сделать Pin<Vec<T>>?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=295dc248585cacc8b22056fecf9e3a91
Это получается, что данные вектора никогда не сдвинутся с их адреса?
Обсуждают сегодня