1use std::fmt;
6
7mod access;
8mod element_render;
9mod headless;
10mod os_clipboard;
11mod synthetic;
12pub mod testing;
13mod window;
14
15pub use element_render::{render_element, render_element_with_state, with_fonts, with_headless};
16pub use headless::Headless;
17pub use os_clipboard::OsClipboard;
18pub use synthetic::{SyntheticEvent, render_app};
19pub use window::{WindowOptions, run_app, run_scene, run_static};
20
21#[derive(Debug)]
23pub enum ShellError {
24 NoDevice,
26 Vello(vello::Error),
28 EventLoop(winit::error::EventLoopError),
30 Readback,
32}
33
34impl fmt::Display for ShellError {
35 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
36 match self {
37 Self::NoDevice => write!(f, "no compute-capable wgpu adapter found"),
38 Self::Vello(e) => write!(f, "vello renderer error: {e}"),
39 Self::EventLoop(e) => write!(f, "winit event loop error: {e}"),
40 Self::Readback => write!(f, "GPU readback failed"),
41 }
42 }
43}
44
45impl std::error::Error for ShellError {}