Berkus
она работает
Co(n)stantine👨🔬
Αλεχ
Αλεχ
и рад
Berkus
mAX
товарищи, помогите пожалуйста запустить простой пример..что-то делаю не так
весь инет перерыл в поисках работающего примера, дока устаревает, пакеты меняются)
все что связано с mio, tokio устарело..
https://play.rust-lang.org/?gist=796b1f0942b1187e36dc7d7b7c711f65&version=nightly&mode=debug
вот сделал шаблон
Evgεny
а где реактор какой-нибудь
պլհկ
tokio::run()
Evgεny
а там дефолтный какой-то?
Evgεny
я-то солидарен, что там что-то меняется, эпизодически почитывал доку еще с того момента, когда токио на каких-то протоколах стоял, а потом их выпилили, а потом что-то еще, и еще, и примеры удалили
պլհկ
block_on() юзай
mAX
да даже в статьях и исходниках ссылки мертвые на сайт вбиты..зачем удалили статьи из доки про каналы и синхронизацию не понятно..
block_on() это где и для чего? я хотел чтобы все асинхронно было
պլհկ
https://play.rust-lang.org/?gist=8a9368f2c22a35576b0daadf9b0dde70&version=nightly&mode=debug
Cat
mAX
заработало, спасибо! пойду разбираться почему)
Berkus
Cat
они обновились, да
mAX
там нет статей которые были раньше..а те что есть, как мне кажется слишком поверхностны и примеров нет
вот с таймером сделали, а с каналами нет..вообще не понимаю, это же базовое
պլհկ
Ну можешь с map_err повозиться
պլհկ
Мне лень с телефона
պլհկ
У тебя ерор не Never
Cat
Cat
для удосбтва, можешь откатиться на старую версию и юзать старые примеры
mAX
ну тогда надеюсь я просто попал в нехорошое время))перестройка)
Berkus
Berkus
футуры и асинк по идее должны к новому году устаканиться
Berkus
но не факт
mAX
futures::executor::block_on отлично работает с ForEach<Receiver<String>,...
но не работает с ForEach<::tokio::timer::Interval,... >, а у ::tokio::run все наоборот!
мне хотелось бы объединить их в один таск (насколько я понимаю через join) и еще присобачить в него же веб-сервер rocket на базе tokio
какой вообще принцип у все этих futures::future? почему они друг с другом не могут запуститься?
mAX
возможно ли такое что у меня из-за каких-то несовместимых между собой версий это происходит?
tokio = "0.1.6"
futures = "0.2.1"
mAX
вроде последние с crates.io
պլհկ
Потому что разные экзекуторы
Berkus
> rocket на базе tokio
тюю, рокет синхронный
պլհկ
Где ты взял рокет на базе токио?
պլհկ
Ты из будущего?
Berkus
Berkus
futures=0.2 это тупиковая ветка
mAX
unresolved import futures::channel
mAX
пойду переписывать)
պլհկ
Berkus
а скажити, у нас давно #[link_args()] в найтли перестали работать?
Berkus
чот какая-то фигня
պլհկ
Может они на новый линкер переехали? (Обещали вроде)
Berkus
вроде пока еще нет
Berkus
хотя
պլհկ
А че за проблема, я не сталкивался
Berkus
для того чтобы luajit не падал на макоси там надо линкер флаги передавать специальные
Berkus
и я чот их передаю, а ему хоть бы что
Berkus
#![feature(link_args)]
#[cfg(all(target_os = "macos", target_arch = "x86_64"))]
#[link_args = "-pagezero_size 10000 -image_base 100000000"]
extern "system" {}
вот такую хуепень
Berkus
самая красота в тестах самого луаджита - без этих строчек оно тупо падает в кору. с ними - варнит что attribute unused, но работает!
mAX
Товарищи, подскажите как правильно объединить таски и запустить их в одном цикле сообщений?
let tasks = task_channel.join(task_timer);
::tokio::run(tasks);
они независимы друго от друга, по одиночке все работает с tokio::run
join делает какой-то непонятный Future<(T, U), E> который tokio::run уже не хочет заупускать..
join_all требует одинаковые типы у тасков
241 | ::tokio::run(tasks);
| ^^^^^^^^^^^^ expected tuple, found ()
|
= note: expected type ((), ())
found type ()
= note: required by tokio::run
mAX
пример в доке только на join_all есть, на join нету)
red75prime
let tasks = task_channel.join(task_timer).map(|_|());
mAX
Спасибо! Заработало!!!)
red75prime
task - это футура с Item=() и Error=()
Filipp
Anonymous
сап
Filipp
привк
Anonymous
я вкатился крч
Anonymous
читаю ту книгу с оф. сайта
Anonymous
хотя думаю в ближайшем будущем язык поменяется
Anonymous
но энивей даже фундамент язфка думаю будет полезен
Маjко
Сильно он никуда уже давно не меняется
Cat
только добавят async к концу года
Alex
Товарищи, есть #вопрос :
Расскажите что за и в чём разница меж "консервативным" и "не" автоимпл типа `fn foo() -> impl Trait`.
Alex
Ну т.е. что за - я в курсе про `-> impl Trait`, но не очень догоняю как это работает, а читать компиллер не хочу.
պլհկ
как работает что?
Alex
պլհկ
впервые слышу слово autoimpl
Alex
Ну блин, оно сколько помню так фигурировало в дискуссиях. Ща...
Tuntz
всё
պլհկ
компилятор знает тип значения и может проверить, что удовлетворяет трейту, но его может быть сложно (или невозможно) записать. поэтому был введен impl Trait
պլհկ
https://play.rust-lang.org/?gist=a4047264590496c06ebd94d27f77149c&version=stable&mode=debug
պլհկ
да нет уже никаких conservative
պլհկ
в стейбл приняли оба
(((Sergey(not seresha))
А для чего, кроме замыканий, оно может пригодиться?
Alex