Anton
А в сотнях интерфейсов и оболочек я не могу вечно искать, подбирать и думать получится или нет
Anton
Я бы тогда вообще ни строчки проекта не написал чоу
Vladimir
ну если ты туда замувишь Rc
Vladimir
то статик лайфтайм вполне таки удовлетворится
Anton
Не ну если приведете пример где безопасно можно делать ссылку и вызывать ее из колбэка статичного я ток за
Vladimir
я так понимаю проблема в том, что Pages не с статик лайфтаймом?
Anton
Anton
Vladimir
Во первых: Нужно ли тебе статик лайфтайм?
Anton
Колбэк на клик кнопки должен например послать ивент
Anton
Но чтобы его вызвать я оборачиваю его в ансейы
Loo
я уже начал править
Anton
Чтобы потом вызвать
Loo
кину пр если получится
Anton
Если чо советую пробовать на wiki_switcher компоненте, он ни к кому не привязан кроме внутренних объектов
Anton
Там 2 ансейф блока, попавер и список вроде
Vladimir
Anton
Ну или на плейграунде просто сделайте пример простой где из колбэка можно безопасно ссылку вызвать, и я все сам поправлю
Anton
Anton
У меня структура инстансы хранит
Anton
И методы этих инстансов мне нужно вызвать из колбэка статичного
Vladimir
какая разница что она хранит?
Vladimir
вот я вызываю метод push
Vladimir
вектора
Vladimir
в чем проблема?
Anton
Какой пуш
Anton
Vladimir
ясно
Vladimir
это старая хуйня
Vladimir
сорян
Anton
Vladimir
https://play.rust-lang.org/?gist=0787c62e8afd128a3538984e447e4685&version=stable
Vladimir
вот посмотри
Vladimir
оно?
Vladimir
нуте хутчее говории
Vladimir
Rc какраз и обеспечивает 'static
Vladimir
а RefCell inner mutability
Vladimir
всё по канонам короч
Anton
https://play.rust-lang.org/?gist=93a366ce2c6e4a94acf9892d4f2d0f75&version=stable
Anton
Скорее както так
Anton
у меня в компоненте должна быть инстанс ссылки на мои эвенты, которые создаются вместе с Component, чтобы я потом мог вызывать events внутри статичного колбэка.
Anton
Anton
в целом да оно
Anton
но разве такой вариант сработает?
Vladimir
блеять нажми кнопку ран
Vladimir
х)
Anton
Так ок
Anton
понял
Anton
сейчас самый простой компонент попытаюсь так переписать
Anton
посмотрим сработает или нет
Vladimir
да че ему не сработать
Vladimir
главное смотри, там клон не проеби
Vladimir
клоню ж Rc
Vladimir
А вообще нахуй тебе статик лайфтайм, я до сих пор не ебу
Anton
господи блять это gtk
Anton
все его слушатели для эвентов клика, активации, чего угодно
Anton
имеют статик лайфтайм
Vladimir
хотя наверное, если они хранят их где-то в статик месте, то это резонно
Anton
thread 'main' panicked at 'already borrowed: BorrowMutError', src/libcore/result.rs:906:4
note: Run with RUST_BACKTRACE=1 for a backtrace.
Anton
В рантайме
Vladimir
а вот тебе и собственно твои ансейфы
Anton
https://github.com/friktor/wiki-reader/commit/db57b8cbaaf2dbafa6daa2d3f6104e43d3b55b44
Vladimir
ты думаешь там они не боровились мутабельно несколько раз?
Vladimir
ток там это могло сегфолтом кончится
Vladimir
либо у тебя лишний боров - кто знает х)
Vladimir
бектрейс покажи хоть
Anton
так
Anton
ты был прав
Anton
я везде напихал borrow_mut
Anton
убрал - все заработало
Anton
блэт
Vladimir
if let Some(row) = list.borrow_mut()
.get_row_at_index(1) {
list.borrow_mut().select_row(Some(&row));
}
Anton
и это все что нужно было чтобы не юзать ансейфы?
Anton
надо побольше про борроучекер с счетчики почитать
Vladimir
вот в тех строках если че у тебя два раза лист бороуится
Vladimir
точнее бороуился
Vladimir
Loo
@tapok_satan тебе только в сетапах нужен