pub extern crate raw_window_handle as raw;
pub use xloop_event::*;
mod win;
pub use win::*;
mod app;
pub use app::*;
mod evt;
pub use evt::*;
pub mod prelude {
pub use super::AppDelegate as _;
pub use super::AppHandle as _;
pub use super::AppProxy as _;
pub use super::AppRef as _;
pub use super::IntoEvt as _;
pub use super::Platform as _;
pub use super::WinDelegate as _;
pub use super::WinHandle as _;
pub use super::WinRef as _;
}
pub trait Platform: Sized + 'static {
type Error: std::error::Error;
type AppRef<'a>: AppRef<Self> + Copy;
type AppHandle: AppHandle<Self>;
type AppProxy: AppProxy;
type WinRef<'a>: WinRef<Self> + Copy;
type WinHandle: WinHandle<Self>;
type WinRaw: raw::HasWindowHandle + raw::HasDisplayHandle + Send + Sync;
type EvtMouse<'a>: IntoEvt<Self, EvtMouse>;
type EvtWheel<'a>: IntoEvt<Self, EvtWheel>;
type EvtKey<'a>: IntoEvt<Self, EvtKey>;
type EvtTouch<'a>: IntoEvt<Self, EvtTouch>;
type EvtCommit<'a>: IntoEvt<Self, EvtCommit>;
fn run(delegate: impl AppDelegate<Self>) -> Result<Option<Self::AppHandle>, Self::Error>;
fn win(key: impl AsRef<str>, delegate: impl WinDelegate<Self>) -> Result<Self::WinHandle, Self::Error>;
fn log(level: log::LevelFilter);
fn read(path: impl AsRef<std::path::Path>) -> impl std::future::Future<Output = Option<Vec<u8>>>;
}