Size: a a a

Rust — русскоговорящее сообществo

2020 August 25

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
Vladimir
Ты говоришь что бокс не sized?
Не бокс а его сабтип и баунд не даёт возможности это использовать
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
Boris Vinogradov
Не бокс а его сабтип и баунд не даёт возможности это использовать
Там толстый указатель будет на значение и на таблицу
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
Учи мат часть
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
Там же скинули ссылку на исходники
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Boris Vinogradov
Не бокс а его сабтип и баунд не даёт возможности это использовать
Давно спал?
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
impl <T: Error> Error for Box<T>
Ошибка кода выше в том, что T должен быть Sized, а dyn Error нет, поэтому и Box<dyn Error> не имплементит Error

Поэтому там как-бы секреты раскрыты.
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
Или вы уже не это обсуждаете?
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
Что-то магия там какая-то
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
Auto Trait🤔
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
Unfortunately it is not possible to fix this (it was attempted multiple times in the past)
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
)
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
Как быстро нашёлся ответ
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
Прочина в
error[E0119]: conflicting implementations of trait `core::convert::From<alloc_crate::boxed::Box<dyn error::Error>>` for type `alloc_crate::boxed::Box<dyn error::Error>`:
  --> library/std/src/error.rs:162:1
   |
162 | impl<'a, E: Error + 'a> From<E> for Box<dyn Error + 'a> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: conflicting implementation in crate `core`:
           - impl<T> core::convert::From<T> for T;

error[E0119]: conflicting implementations of trait `core::convert::From<alloc_crate::boxed::Box<dyn error::Error + core::marker::Send + core::marker::Sync>>` for type `alloc_crate::boxed::Box<dyn error::Error + core::marker::Send + core::marker::Sync>`:
  --> library/std/src/error.rs:194:1
   |
194 | impl<'a, E: Error + Send + Sync + 'a> From<E> for Box<dyn Error + Send + Sync + 'a> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: conflicting implementation in crate `core`:
           - impl<T> core::convert::From<T> for T;

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0119`.
error: could not compile `std`.
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
не понял
источник
2020 August 26

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
Оно уже реализовано?
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
нет
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
Пока не будет возможности реализвывть для всех кроме
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
А откуда тогда конфликтующие имплементации
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
Там конфликты начинаются
источник