use std::fmt;
mod access;
mod element_render;
mod headless;
mod os_clipboard;
mod synthetic;
pub mod testing;
mod window;
pub use element_render::{render_element, render_element_with_state, with_fonts, with_headless};
pub use headless::Headless;
pub use os_clipboard::OsClipboard;
pub use synthetic::{SyntheticEvent, render_app};
pub use window::{WindowOptions, run_app, run_scene, run_static};
#[derive(Debug)]
pub enum ShellError {
NoDevice,
Vello(vello::Error),
EventLoop(winit::error::EventLoopError),
Readback,
}
impl fmt::Display for ShellError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::NoDevice => write!(f, "no compute-capable wgpu adapter found"),
Self::Vello(e) => write!(f, "vello renderer error: {e}"),
Self::EventLoop(e) => write!(f, "winit event loop error: {e}"),
Self::Readback => write!(f, "GPU readback failed"),
}
}
}
impl std::error::Error for ShellError {}