Size: a a a

2022 January 25

DF

Dollar Føølish in Rust Async
Благодарю за ликбез!
источник

d

diabolo in Rust Async
в самой футуре, которая должна закенселить другую сторону можно вопользоваться drop_guard, тогда cancel() пошлется автоматом по факту дропа футуры
источник

f

folex in Rust Async
источник

f

folex in Rust Async
при внешнем cancel tokene как раз можно is_cancelled отдавать в terminated, и получится реализация Fuse.
источник

d

diabolo in Rust Async
Человеку дали на выбор разные варианты, какой ему удобней решит сам :)
источник
2022 January 29

A

Alexey Taranov in Rust Async
Ребят, посоветуйте плз книгу для зелёного нубаса в беке, чтобы там можно было заюзать раст. Я вот прочёл парочку книг (hands on о игровом ecs и ещё с книгу с крабом - не помню названия), но вот пока что связано с сетью и на расте даже не знаю. Мб кто-нибудь даст совет? (Вроде не оффтоп)
источник

DS

Danieλ Sλapman in Rust Async
Тебе сюда @rust_beginners_ru
источник

M

MUTbKA in Rust Async
pub struct MyActor {
   rx: Receiver<Msg>
}

impl MyActor {
   pub fn new(rx: Receiver<Msg>) -> Self {
       Self { rx: rx }
   }
}

impl Actor for MyActor {
   type Context = actix::prelude::Context<Self>;

   fn started(&mut self, ctx: &mut Self::Context) {
       Self::add_stream(ReceiverStream::new(self.rx), ctx);
   }
}

impl StreamHandler<Msg> for MyActor {
}
ReceiverStream::new забирает владение своего аргумента, и я даже не против отдать - только вот как?
источник

D

Denis in Rust Async
хз как принято в актиксе, но всегда можно сделать
pub struct MyActor {
   rx: Option<Receiver<Msg>>
}

и отдавать через self.rx.take().unwrap()
источник

M

MUTbKA in Rust Async
Спс! То есть все же требуется грязный хак.
источник

D

Denis in Rust Async
так, подожди
не, я всё же хз)
источник

M

MUTbKA in Rust Async
Проблема в том, что started() вызываю не я, а сам актикс, и где передержать переменную, чтобы избавиться от нее только там - я никак не придумаю.
источник

M

MUTbKA in Rust Async
Вот любопытно стало - а каким образом вообще имеется тотальная несовместимость между самыми свежими версиями actix, actix-rt и actix-web, если все это тесно взаимосвязано? Почему actix 0.12 конфликтует с actix-web 4.0, к примеру и они зависят от очень сильно разных actix-rt?
источник
2022 January 30

ph

pl 🦑 hk in Rust Async
Что конфликтует? У обоих actix-rt 2
источник

M

MUTbKA in Rust Async
Ну там есть некие магические работающие комбинации, которые ни разу не включают в себя свежий actix 0.12, к примеру - всегда более древний.
источник

M

MUTbKA in Rust Async
На stackoverflow много подобных вопросов и ответов.
источник

ph

pl 🦑 hk in Rust Async
actix-web = "4.0.0-beta.10"
actix = "0.12"
У меня все работает 🤷‍♀️
источник

M

MUTbKA in Rust Async
А если актора своего сделать? Beta.10 зависит от actix_rt 2.2, а actix - от 2.0
источник

D

Denis in Rust Async
зависимость от 2.0 не противоречит 2.2
источник

D

Denis in Rust Async
всё ок вроде
источник