use anathema_backend::{Backend, WidgetCycle};
use anathema_state::{Changes, States};
use anathema_store::tree::root_node;
use anathema_templates::blueprints::Blueprint;
use anathema_templates::{Document, Globals};
use anathema_widgets::components::ComponentRegistry;
use anathema_widgets::layout::{Constraints, Viewport};
use anathema_widgets::{
eval_blueprint, ChangeList, Components, DirtyWidgets, Factory, FloatingWidgets, GlyphMap, WidgetTree,
};
pub use crate::error::Result;
pub struct OneShot<T> {
pub(super) factory: Factory,
pub(super) blueprint: Blueprint,
pub(super) globals: Globals,
pub(super) document: Document,
pub(super) glyph_map: GlyphMap,
pub(super) backend: T,
pub(super) viewport: Viewport,
pub(super) constraints: Constraints,
pub(super) components: Components,
pub(super) dirty_widgets: DirtyWidgets,
pub(super) changes: Changes,
pub(super) component_registry: ComponentRegistry,
pub(super) floating_widgets: FloatingWidgets,
pub(super) changelist: ChangeList,
}
impl<T> OneShot<T>
where
T: Backend,
{
pub fn run(mut self) -> Result<()> {
panic!()
}
}