Size: a a a

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

2020 April 19

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
Tema
как не ждать ее? Вот у меня есть просто функция. И ее надо отправить
tokio::spawn(my_async_func(…))
источник

T

Tema in Rust — русскоговорящее сообществo
Алексей Герасимов
tokio::spawn(my_async_func(…))
ща попробую
источник

AV

A V in Rust — русскоговорящее сообществo
red75prime
Там дело не в итераторе, а в том, что одновременно есть NodeEntries::node_table и ссылки в current_bucket_remaining. В current_bucket_remaining нужно использовать указатели вместо ссылок.
вектор из указателей?
источник

T

Tema in Rust — русскоговорящее сообществo
зря я думал, что легко начну девелопить проект на расте без опыта в нем вообще
источник

r

red75prime in Rust — русскоговорящее сообществo
A V
вектор из указателей?
да
источник

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
Tema
зря я думал, что легко начну девелопить проект на расте без опыта в нем вообще
очень зря, тем более асинхронщина
источник

AT

Alexander Tchitchigin in Rust — русскоговорящее сообществo
Tema
зря я думал, что легко начну девелопить проект на расте без опыта в нем вообще
И без опыта статической типизации вообще.
источник

В

Вафель in Rust — русскоговорящее сообществo
Асинхронщина + переход на статическую типизацию эо убойная смесь (
источник

T

Tema in Rust — русскоговорящее сообществo
Алексей Герасимов
tokio::spawn(my_async_func(…))
это я выполняю в синхронной функции же? И что в use добавлять?
источник

AV

A V in Rust — русскоговорящее сообществo
red75prime
да
источник

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
Tema
это я выполняю в синхронной функции же? И что в use добавлять?
да, в синхронной. в use ничего добавлять не надо, так и пиши. только смотри чтобы фича rt-core была включена у крэйта tokio
источник

AV

A V in Rust — русскоговорящее сообществo
но я в любом случае держу в итераторе &mut на контейнер и раздаю &mut на содержимое - это не считается UB?
источник

Э

Эрик in Rust — русскоговорящее сообществo
A V
но я в любом случае держу в итераторе &mut на контейнер и раздаю &mut на содержимое - это не считается UB?
Пока сам контейнер недоступен для юзера, всё норм. Главное, чтобы итератор не превращался обратно в контейнер, пока ты ссылки нараздавал.
источник

T

Tema in Rust — русскоговорящее сообществo
Алексей Герасимов
да, в синхронной. в use ничего добавлять не надо, так и пиши. только смотри чтобы фича rt-core была включена у крэйта tokio
^^^^^^^^^^^^ future returned by `do_something` is not `Send`
источник

r

red75prime in Rust — русскоговорящее сообществo
Возможно в порядке. Но лучше прогнать через MIRI
источник

r

red75prime in Rust — русскоговорящее сообществo
Вместо *mut можно взять std::ptr::NonNull, чтобы unwrap не делать
источник

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
Tema
^^^^^^^^^^^^ future returned by `do_something` is not `Send`
покажи что в do_something и как ты делаешь spawn
источник

T

Tema in Rust — русскоговорящее сообществo
@geraleks пример со спавном не компилится. А пример с block_on обычным - зависает сервер. Видимо я как-то не так описал асинхронную функцию, ща скину ее
источник

AV

A V in Rust — русскоговорящее сообществo
red75prime
Вместо *mut можно взять std::ptr::NonNull, чтобы unwrap не делать
NonNull::as_mut? он привязан к лайфтайму NonNull, а не объекта
источник

T

Tema in Rust — русскоговорящее сообществo
@geraleks

async fn do_something() {
 let mut client = Client::default();

 let response = client.get("https://github.com/seanmonstar/reqwest/tree/master/examples")
     .send().await;

 println!("Response: {:?}", response);
}
источник