172 похожих чатов

Trait Foo: Any {} impl Foo for i32 {} fn main() {

let x: Box<dyn Foo> = Box::new(0_i32);
let x_value: Box<i32> = x.downcast::<i32>().unwrap();
}
пишет no method named `downcast` found for struct `Box<(dyn Foo + 'static)>` in the current scope. Как здесь правильно даункастить?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=b2eadfb6a9415349e77cb4d1aa4bcd22

10 ответов

24 просмотра
Dmytro-Polunin Автор вопроса

https://docs.rs/downcast-rs/latest/downcast_rs/index.html только так? встроенного способа нет7

https://lib.rs/crates/mopa

Dmytro Polunin
https://docs.rs/downcast-rs/latest/downcast_rs/ind...

Но да, пока что даункаст трейт объектов не сделали (оно в процессе), приходится делать отдельные методы для кастов

Dmytro-Polunin Автор вопроса
вафля'
https://lib.rs/crates/mopa

https://docs.rs/mopa/latest/src/mopa/lib.rs.html#325 а это точно safe делать такой трансмьют? если да то я просто его и сделаю

Dmytro Polunin
https://docs.rs/mopa/latest/src/mopa/lib.rs.html#3...

бери лучше downcast_rs, там правильнее сделано вроде

Dmytro-Polunin Автор вопроса
вафля'
бери лучше downcast_rs, там правильнее сделано вро...

только там нет unsafe_downcast, а хотелось бы

А что за unsafe_downcast и зачем он тебе?

Dmytro-Polunin Автор вопроса
вафля'
А что за unsafe_downcast и зачем он тебе?

который не проверяет что self.is::<T>()

Dmytro Polunin
который не проверяет что self.is::<T>()

Такого вроде нигде нет afaik, в std я не нашёл по крайней мере

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта