Маjко
fn ping_ips(ips: Vec<IP>) -> impl Future<Item = IP, Error = ()> { select_ok(ips.iter().map(|x| ping(x))).map(|x| x.0) }
Увы, я тут понял, что это не решение: select запустит все фьючи одновременно, а по задаче нужно запускать последовательно до первого успеха.
Anton
причем сам по себе Reader обернутый я смог прихерачить
Anton
а вот чтобы достать до него из connect_activate я все равно не смог
Anton
И ведь я его вроде как сказали поставил чистый, без ссылок прямых только Ref
Anton
или опять не так понял?
Anonymous
лол
Anonymous
я специально так сделал
Anonymous
но тогда решение будет мало отличаться от твоего
Anton
Ммм ну короче случилось примерно то что ожидал
Anton
короче в самой функции connect_search_activate ошибки нет
Маjко
@blastprocessing > циклом
Маjко
Забыл добавить важный момент, опишу целиком: Есть список IP, хотя бы один должен быть отпингован Идем циклом пока что-нибудь не отпингуется, возвращаем IP успешного пинга Если ничего не пинганулось, возвращаем ошибку Вот так будет наиболее близко к той задаче, которую я решал
Маjко
но тогда решение будет мало отличаться от твоего
Увы( Я уже обрадовался что смогу выкинуть 80 строк
Anonymous
сас
Маjко
А сейчас полез менять, увидел что получается не эквивалентно
Anton
даже поправил функцию fn setup_search(self) { let entry = self.builder.get_object("search-input").unwrap(); connect_search_activate(entry, self.pages.reader); } но проблема в том что так я передаю владение, изза чего само собой получилось вот так: 140 | self.setup_search(); | ^^^^ cannot move out of borrowed content
Anton
А ссылку на self.pages.reader передавать нельзя ибо мать его ссылка же
Anton
короче пейсос
Маjко
Избавляйся от ссылок?
Anton
Попробовал
Anton
вот так например: fn connect_search_activate(entry: Entry, reader: &Rc<RefCell<Reader>>) { let _reader = reader.borrow(); entry.connect_activate(move |event| { let text = event.get_text().unwrap(); _reader.print_search(text); }); }
Anton
Но все равно дичь
Anton
Избавляйся от ссылок?
нельзя от них полностью избавится, reader это страница в pages, а pages это контейнер для app
Anton
тут какбы даже с учетом что я вынес reader как обернутый контейнер поле в хип
Anton
нельзя от него избавится на верхнем уровне
Маjко
Мда
Anton
тоесть я вешаю эвент на инпут, и он получив владение пишет какую то херню и все
Anton
больше я ничего с данными делать не смогу
Anton
это же пездец
Маjко
borrowck хлещет @tapok_satan плеткой и смеется
Anton
мда, это жестоко
Anton
тоесть наверное по идее, если я сделаю input внутри самого reader то проблемы не будет
Anton
чисто теоретически
Anton
если все будет вообще без ссылок одним запихоном
Anton
но тогда весь мой божественный дизайн и компонентная система идет по пизде
Anton
АХУИННА
Маjко
Готов для прода))
Anton
мда, и ведь серьезно как тогда вообще мессенджинг между компонентами делать
Anton
реально чтоли на верхнем уровне замутить общую зависимость в виде единого стора
Anton
который будет жить дольше всех и по тредам мессенджить
Anton
хотя не это уже прям совсем пиздец
Anton
В JS ТАКОГО НЕ БЫЛО
Anton
Anton
если колбэк живет вечно
Berkus
В JS ТАКОГО НЕ БЫЛО
чойта не было, посмотри вон на redux :)
Anton
то блять получается вообще не безопасно ничего делать
Anton
максимум console log
Маjко
А что тебе еще надо? О_о
Berkus
вопрос, [u8] или его слайс можно в str как-то превратить?
Anton
надо чтобы он текст передал компоненту
Anton
а там уже понеслась
Anton
сцука уже сделан обработчик который текст принимает и делает поиск
Anton
и все гуд
Anton
но только в предвкушении решил с инпутом связать
Anton
и все летит в пизду
Маjко
Загляни в доку по str
Berkus
parse_utf8, етическая сила, спасибо поищу
Berkus
ага, str::from_utf8 спс
Anton
Эмм ребят
Anton
а есть ли контейнер
Anton
который можно статично заюзать в колбэке
Anton
даже когда контейнерные данные типо уже ебнулись
Маjко
Ето как?
Anton
тоесть все ебнется уже когда приложение будет мертво так что не жалко
Маjко
UnsafeCell 😂
Anton
ну смотри, эвентлуп gtk ебается уже после того как ебается rust поток, тоесть нужен контейнер на котороый он будет думать что это статика но это нихуя не статика
Loo
я тут недавно пришёл с митапа джетбрэинс по лввм
Anton
ну а если он колбэк отправит пустым данным то приложение и так уже метров
Loo
такой угар
Anton
Ето как?
Ето когда ты в отчаянии и готов рвать на себе бороду лишь бы эта хуйня работала
Маjко
ну смотри, эвентлуп gtk ебается уже после того как ебается rust поток, тоесть нужен контейнер на котороый он будет думать что это статика но это нихуя не статика
Это какой-то С++ стайл: держать указатель на данные с расчетом на то что память освободится после падения программы
Anton
и весь их апи сука целиком в gtk-rs запихали
Anton
не я такой, жизнь такая
Маjко
Это вообще отстойно, да(
Маjко
А ты не пробовал какие-то более растодружелюбные фреймворки? Типа elm-rs