колбеки? Основная проблема в том, что все эти колбеки, требует 'static lifetime.
Вот и назревает проблема, что весь код начинает использовать Rc<RefCell<_>>, чтобы как-то решить проблемы с владением. Тут и структура врапер, которая содержит один.
struct App {
shared_data: Rc<RefCell<_>>;
}
И другие костыли. Вот вопрос. Как сделать лучше? Или как улучшить эргономику использования Rc + RefCell. Сейчас это выглядит ужасно.
Никуда не денешься, увы... В futures 0.1, где тоже везде 'static нужен, спасает частично то, что значения можно мувать через пайплайн замыканий. С gtk-rs коллбеками так не получится, ибо что туда уехало, там и остаётся. Универсальное правило по улучшению эргономики Rc<RefCell<_>> - это прятать онные под капот, оставляя снаружи cheap Clone'able тип все методы которого работают через &self, который муваешь и клонишь туда-сюда, а под капотом уже играет Rc и если нужно RefCell для mutability.
возьми relm?
Обсуждают сегодня