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 ответов

11 просмотров
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 я не нашёл по крайней мере

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

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

Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Гайз, кто-нибудь пробовал запустить probe-rs под камень, которого нет в probe-rs? Мб есть какой-нибудь пример у кого... Через target-gen попробовал сгенерировать chip-descript...
Максим Смирнов
2
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
@NikaBelurgHR Бот? Ассемблер?
КТ315
11
юзеры Jetpack Compose тут?
Qtless Qtless
8
Добрый день! Подскажите, пожалуйста: какими компетенциями нужно обладать, чтобы претендовать на работу эрланг (отдельная благодарность, если про элексир тоже подскажете) разр...
via ☸️ led
20
Карта сайта