Size: a a a

2020 December 18

AT

Alexander T in Rust Beginners
я хочу сначала одноразовую сделать, чтоб вообще понять, как это собрать в кучу все
источник

K

Kitsu in Rust Beginners
Alexander T
есть tbot, у которого хендлеры - |context, state| async move { … }
в хендлере я могу получить доступ к state.read().await

при создании бота происходит:
let bot = Bot::from_env("TG_TOKEN");
let start_state = State::
default();
[СЮДА]
let mut event_loop = bot.stateful_event_loop(start_state);
event_loop.command(
);

event_loop.polling().start().await.unwrap();


в [СЮДА] мне нужно создать футуру и положить ее в стейт, чтобы хендлеры могли из стейта останавливать/ресетать/стартовать
Кажется стоит присмотреться в tokio::sync::oneshot
источник

AT

Alexander T in Rust Beginners
Kitsu
Кажется стоит присмотреться в tokio::sync::oneshot
ага, выглядит интересно. правильно ли понял, что можно сделать loop {…} футуру, и при получении в нее ивента “стопэ” - останавливать?
источник

AT

Alexander T in Rust Beginners
только это между двумя, судя по всему. а у меня будет их несколько.
источник

K

Kitsu in Rust Beginners
Alexander T
ага, выглядит интересно. правильно ли понял, что можно сделать loop {…} футуру, и при получении в нее ивента “стопэ” - останавливать?
oneshot::Receiver это и есть футура, т.е. не цикл, а просто await
источник

AT

Alexander T in Rust Beginners
а, к каждому ресиверу есть сендер. и я просто в свой контейнер суну сендеры.
источник

MB

Mikail Bagishov in Rust Beginners
Еще есть tokio_util::sync::CancellationToken, мне кажется с ним покрасивее выйдет
источник

MB

Mikail Bagishov in Rust Beginners
Дальше можно делать
loop {
   select! {
       _ = my_fut => {
          ...
       }
       _ = token.cancelled() => {
           break
      }
   }
}
источник

AP

Andrey Pushkar in Rust Beginners
Всем привет! У меня такая проблема: я хочу написать шаблонную обертку над slice::from_raw_parts, которая бы возвращала, собственно, слайс из u8 от обычных структур на стеке и от векторов таких структур. Так что скажите, пожалуйста, можно ли эти два случая учесть в одной функции, а если нужны две разные, то можно ли как-то ограничить их применимость трейтами шаблонных параметров, чтобы нельзя было случайно ошибиться и получить байты самого объекта вектора вместо его содержимого? Спасибо.
источник

AT

Alexander T in Rust Beginners
Mikail Bagishov
Дальше можно делать
loop {
   select! {
       _ = my_fut => {
          ...
       }
       _ = token.cancelled() => {
           break
      }
   }
}
пока не понял, куда это в моем случае писать, но примеры в доке выглядят многообещающе, спасибо за наводку.
источник

y

ymdev in Rust Beginners
Привет.
Никогда не работал с GPU, но хочу попробовать. К примеру, хочу попробовать реализовать brute force с перебором на GPU на Rust. Не направите, как это делается практически?
источник

b

in Rust Beginners
ymdev
Привет.
Никогда не работал с GPU, но хочу попробовать. К примеру, хочу попробовать реализовать brute force с перебором на GPU на Rust. Не направите, как это делается практически?
источник

НТ

Никита Тыманович... in Rust Beginners
в чем принципиальная разница между as_ref() и borrow()?
источник

НТ

Никита Тыманович... in Rust Beginners
и есть ли вообще смысл их использовать вместе ?
источник

НТ

Никита Тыманович... in Rust Beginners
да, я читал книгу, но лучше уточнить здесь
источник

A

Adatan in Rust Beginners
Как сделать сырой указатель на неизвестный тип данных? И как потом его задаункастить?
источник

НТ

Никита Тыманович... in Rust Beginners
можно брутально <your_numb> as *const T
источник

A

Adatan in Rust Beginners
Никита Тыманович
можно брутально <your_numb> as *const T
не совсем понял
источник

A

Adatan in Rust Beginners
вот банально
источник

A

Adatan in Rust Beginners
хочу сделать сырой указатель на 5, не указывая, что это указатель на i32 тип
источник