use crate::AppModel;
pub(crate) struct Rig {
pub(crate) model: AppModel,
pub(crate) deriver: crate::app::Deriver,
}
impl Rig {
pub(crate) fn tick(&mut self) -> bool {
self.deriver.step();
self.model.take()
}
pub(crate) fn publish(&mut self) {
self.deriver.publish();
self.model.take();
}
pub(crate) fn tab_bar(&self, focused: Option<&str>) -> crate::nav::tabs::TabBar {
crate::test_support::chrome::tab_bar(&self.model, focused)
}
pub(crate) fn activity(&self) -> crate::opslog::Activity {
crate::test_support::chrome::activity(&self.model)
}
}
impl std::ops::Deref for Rig {
type Target = AppModel;
fn deref(&self) -> &AppModel {
&self.model
}
}
impl std::ops::DerefMut for Rig {
fn deref_mut(&mut self) -> &mut AppModel {
&mut self.model
}
}