use crate::ui::{Ui, types::UiEvent};
use crate::{Engine, Result};
#[derive(Clone, Copy, Debug, Default)]
pub struct ViewerLiveCapabilities {
pub receives_events: bool,
pub publishes_render_dependency: bool,
pub retains_consumer_completion: bool,
}
pub trait ViewerLiveSource {
fn capabilities(&self) -> ViewerLiveCapabilities;
fn open(&mut self, engine: &Engine) -> Result<()>;
fn update(&mut self, delta_ms: f32) -> Result<()>;
fn render(&mut self, ui: &mut Ui<'_>, width: u32, height: u32) -> Result<()>;
fn on_event(&mut self, _event: &UiEvent) -> Result<()> {
Ok(())
}
fn close(&mut self) -> Result<()>;
}