Berkus
она работает
Αλεχ
Αλεχ
и рад
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
mAX
заработало, спасибо! пойду разбираться почему)
Cat
они обновились, да
mAX
там нет статей которые были раньше..а те что есть, как мне кажется слишком поверхностны и примеров нет вот с таймером сделали, а с каналами нет..вообще не понимаю, это же базовое
պլհկ
Ну можешь с map_err повозиться
պլհկ
Мне лень с телефона
պլհկ
У тебя ерор не Never
Cat
для удосбтва, можешь откатиться на старую версию и юзать старые примеры
mAX
ну тогда надеюсь я просто попал в нехорошое время))перестройка)
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
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
let tasks = task_channel.join(task_timer).map(|_|());
map(drop) приятней выглядит имхо
Anonymous
сап
Filipp
привк
Anonymous
я вкатился крч
Anonymous
читаю ту книгу с оф. сайта
Anonymous
хотя думаю в ближайшем будущем язык поменяется
Anonymous
но энивей даже фундамент язфка думаю будет полезен
Маjко
Сильно он никуда уже давно не меняется
Cat
только добавят async к концу года
Alex
Товарищи, есть #вопрос : Расскажите что за и в чём разница меж "консервативным" и "не" автоимпл типа `fn foo() -> impl Trait`.
Alex
Ну т.е. что за - я в курсе про `-> impl Trait`, но не очень догоняю как это работает, а читать компиллер не хочу.
պլհկ
как работает что?
Alex
как работает что?
fn foo() -> impl Trait
պլհկ
впервые слышу слово autoimpl
Alex
Ну блин, оно сколько помню так фигурировало в дискуссиях. Ща...
Tuntz
fn foo() -> impl Trait
компилятор выводит реальный тип и копипастит в сигнатуру
Tuntz
всё
պլհկ
компилятор знает тип значения и может проверить, что удовлетворяет трейту, но его может быть сложно (или невозможно) записать. поэтому был введен impl Trait
պլհկ
https://play.rust-lang.org/?gist=a4047264590496c06ebd94d27f77149c&version=stable&mode=debug
Alex
Ну блин, оно сколько помню так фигурировало в дискуссиях. Ща...
Блин, чё-то не нахожу... Неужели я перепутал или придумал?!...
Alex
компилятор выводит реальный тип и копипастит в сигнатуру
Ну это понятно. Непонятно **как** он это делает. И в чём отличие conservative_impl.
պլհկ
да нет уже никаких conservative
պլհկ
в стейбл приняли оба
(((Sergey(not seresha))
А для чего, кроме замыканий, оно может пригодиться?