pub trait ShellProvider {
// Provided methods
fn request_redraw(&self) { ... }
fn set_cursor(&self, icon: CursorIcon) { ... }
fn set_window_title(&self, title: String) { ... }
fn get_clipboard_text(&self) -> Result<String, ClipboardError> { ... }
fn set_clipboard_text(&self, text: String) -> Result<(), ClipboardError> { ... }
}