Size: a a a

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

2020 March 03

p

polunin.ai in Rust — русскоговорящее сообществo
Вафель
Или Trait: Debug (хоть с Debug то это будет работать?)
нет, я проверял(
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Вафель
Ну можно не печатать vec вообще. Или печатать каждую коробку как поинтер (не очень полезно на самом деле)
мне нужно знать что там внутри, в том и проблема
источник

p

polunin.ai in Rust — русскоговорящее сообществo
черд, придется на enum Foo { Bar(Bar) } переходить. месяц боролся, но видимо никак по-другому.
источник

В

Вафель in Rust — русскоговорящее сообществo
polunin.ai
нет, я проверял(
источник

В

Вафель in Rust — русскоговорящее сообществo
polunin.ai
мне нужно знать что там внутри, в том и проблема
У тебя какое-то противоречие. Если надо знать что внутри — не надо стирать типы
источник

p

polunin.ai in Rust — русскоговорящее сообществo
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Вафель
У тебя какое-то противоречие. Если надо знать что внутри — не надо стирать типы
мне нужно только печатать что там внутри. и только в тестах.

ля, я вспомнил что тут кидали как с помощью каста через Any это делать, пойду найду
источник

p

polunin.ai in Rust — русскоговорящее сообществo
в общем для работы программы мне плевать что там за типы
но в тестах я хочу иметь возможность юзать assert!()
источник

В

Вафель in Rust — русскоговорящее сообществo
У тебя в ошибке всё написанно. PartialEq = PartialEq<Self>, а как ты из dyn узнаешь Self?
источник

f

folex in Rust — русскоговорящее сообществo
Пытаюсь обернуть oneshot::channel() в одну структуру, и не могу придумать, как мне поступить с ownership.

struct OneshotChannel<M: Sized> {
   outlet: oneshot::Sender<M>,
   stream: Fuse<IntoStream<oneshot::Receiver<M>>>,
}


Я хочу иметь структуру, которую буду использовать для сигналинга выхода из потока. Например:

let exit = OneshotChannel::<()>::new();
select!(
   // wait for exit
   got_exit = exit.next() => {
       break;
   }
// … exit later, asynchronously

(этот дикий stream – это то как я ушел от проблемы овнершипа над `oneshot::Receiver`)

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=f7643055ebc6b73565d81e19047b491a
источник

f

folex in Rust — русскоговорящее сообществo
Как тут лучше быть? Обернуть outlet в Option, и выставлять его потом в None? Как-то это…
источник

В

Вафель in Rust — русскоговорящее сообществo
folex
Как тут лучше быть? Обернуть outlet в Option, и выставлять его потом в None? Как-то это…
Попробуй использовать take_mut
источник

f

folex in Rust — русскоговорящее сообществo
Вафель
Попробуй использовать take_mut
На чём? :)
источник

ph

pl 🦑 hk in Rust — русскоговорящее сообществo
источник

f

folex in Rust — русскоговорящее сообществo
А не подскажете, в async_std есть аналог?
источник

f

folex in Rust — русскоговорящее сообществo
а то у меня тут не токио :(
источник

В

Вафель in Rust — русскоговорящее сообществo
folex
На чём? :)
Вообще я имел в виду на self.outlet, но сейчас понимаю что неприменимо ибо send забирает владение на всегда. Не знаю почему меня сегодня тянет помогать не разобравшись, надо с этим завязывать x_x
источник

DS

Dmitry Sokolov in Rust — русскоговорящее сообществo
Rayon кто-то с range использовал?

let mut rng = rand::thread_rng();
   let numbers: Vec<i32> = (0..100000000).into_par_iter().map(|_| {
       rng.gen_range(1, 21)
   }).collect();

выдает std::ptr::NonNull<rand::rngs::adapter::reseeding::ReseedingRng<rand_chacha::chacha::ChaCha20Core, rand_core::os::OsRng>> cannot be sent between threads safely
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
Dmitry Sokolov
Rayon кто-то с range использовал?

let mut rng = rand::thread_rng();
   let numbers: Vec<i32> = (0..100000000).into_par_iter().map(|_| {
       rng.gen_range(1, 21)
   }).collect();

выдает std::ptr::NonNull<rand::rngs::adapter::reseeding::ReseedingRng<rand_chacha::chacha::ChaCha20Core, rand_core::os::OsRng>> cannot be sent between threads safely
Правильно выдает, thread_rng привязан к конкретном треду, а ты пытаешься его расшарить.
источник

АВ

Андрей Власов in Rust — русскоговорящее сообществo
Dmitry Sokolov
Rayon кто-то с range использовал?

let mut rng = rand::thread_rng();
   let numbers: Vec<i32> = (0..100000000).into_par_iter().map(|_| {
       rng.gen_range(1, 21)
   }).collect();

выдает std::ptr::NonNull<rand::rngs::adapter::reseeding::ReseedingRng<rand_chacha::chacha::ChaCha20Core, rand_core::os::OsRng>> cannot be sent between threads safely
let numbers: Vec<i32> = (0..100000000).into_par_iter().map(|_| {
       rand::thread_rng().gen_range(1, 21)
   }).collect();
источник