xloop_types 0.1.2

core types for xloop.
Documentation
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>>>;
	// TODO 配置信息
	// TODO delay 屏幕,菜单
}