Size: a a a

2020 January 07

AZ

Alex Zhukovsky in rust_offtopic
BoxedClone трейт
источник

OA

Oleg Andreev in rust_offtopic
Box<Type> != Box<dyn Trait>
источник

OA

Oleg Andreev in rust_offtopic
Box<Type> вполне прозрачно поддерживает всякие дженерики, потому что тип точно известен, просто сидит не на стеке, а на куче.
источник

OA

Oleg Andreev in rust_offtopic
Box<dyn Trait> это вообще другой зверь и по историческим причинам использует слово Box
источник

OA

Oleg Andreev in rust_offtopic
по идее должно быть просто dyn Trait
источник

OA

Oleg Andreev in rust_offtopic
как impl Trait
источник

MB

Mikail Bagishov in rust_offtopic
Oleg Andreev
по идее должно быть просто dyn Trait
Почему? Это unsized объект
источник

OA

Oleg Andreev in rust_offtopic
источник

OA

Oleg Andreev in rust_offtopic
Mikail Bagishov
Почему? Это unsized объект
я про синтаксис, а не семантику
источник

AZ

Alex Zhukovsky in rust_offtopic
Oleg Andreev
Box<Type> != Box<dyn Trait>
Это одно и то же. Есть же ворнинг на это
источник

OA

Oleg Andreev in rust_offtopic
Alex Zhukovsky
Это одно и то же. Есть же ворнинг на это
Box<Trait> и Box<Type> - разные вещи
источник

MB

Mikail Bagishov in rust_offtopic
А как ты отличишь Arc<dyn Tr > от Box<dyn Tr> ?
источник

OA

Oleg Andreev in rust_offtopic
Box<Trait> - это депрекейтед на Box<dyn Trait>
источник

MB

Mikail Bagishov in rust_offtopic
И от *mut dyn Tr?
источник

AZ

Alex Zhukovsky in rust_offtopic
Mikail Bagishov
А как ты отличишь Arc<dyn Tr > от Box<dyn Tr> ?
очень просто, если Tr это трейт значит dyn
источник

MB

Mikail Bagishov in rust_offtopic
Alex Zhukovsky
очень просто, если Tr это трейт значит dyn
Я не про  слово dyn
источник

MB

Mikail Bagishov in rust_offtopic
Я про то, что трейт-объект можно запихнуть в много разных типов
источник

AZ

Alex Zhukovsky in rust_offtopic
Oleg Andreev
Box<Trait> и Box<Type> - разные вещи
Только вот ты в трейте, и Self в трейте будет ознчать себя в трейте, а не себя тип реализующий трейт
источник

MB

Mikail Bagishov in rust_offtopic
В том числе в ссылки, указатели, Arc, Rc, Box, и так далее
источник

AZ

Alex Zhukovsky in rust_offtopic
trait BoxedClone {
  fn clonse(&self) -> Box<Self>
}

Эквивалентно

trait BoxedClone {
  fn clonse(&self) -> Box<dyn BoxedClone>
}
источник