#![cfg_attr(feature = "nightly-docs", feature(doc_cfg))]
#![no_std]
#[cfg_attr(feature = "nightly-docs", doc(cfg(target_os = "android")))]
#[cfg_attr(not(feature = "nightly-docs"), cfg(target_os = "android"))]
pub mod android;
#[cfg_attr(feature = "nightly-docs", doc(cfg(target_os = "ios")))]
#[cfg_attr(not(feature = "nightly-docs"), cfg(target_os = "ios"))]
pub mod ios;
#[cfg_attr(feature = "nightly-docs", doc(cfg(target_os = "macos")))]
#[cfg_attr(not(feature = "nightly-docs"), cfg(target_os = "macos"))]
pub mod macos;
#[cfg_attr(
feature = "nightly-docs",
doc(cfg(any(
target_os = "linux",
target_os = "dragonfly",
target_os = "freebsd",
target_os = "netbsd",
target_os = "openbsd"
)))
)]
#[cfg_attr(
not(feature = "nightly-docs"),
cfg(any(
target_os = "linux",
target_os = "dragonfly",
target_os = "freebsd",
target_os = "netbsd",
target_os = "openbsd"
))
)]
pub mod unix;
#[cfg_attr(feature = "nightly-docs", doc(cfg(target_arch = "wasm32")))]
#[cfg_attr(not(feature = "nightly-docs"), cfg(target_arch = "wasm32"))]
pub mod web;
#[cfg_attr(feature = "nightly-docs", doc(cfg(target_os = "windows")))]
#[cfg_attr(not(feature = "nightly-docs"), cfg(target_os = "windows"))]
pub mod windows;
mod platform {
#[cfg(target_os = "android")]
pub use crate::android::*;
#[cfg(target_os = "macos")]
pub use crate::macos::*;
#[cfg(any(
target_os = "linux",
target_os = "dragonfly",
target_os = "freebsd",
target_os = "netbsd",
target_os = "openbsd"
))]
pub use crate::unix::*;
#[cfg(target_os = "windows")]
pub use crate::windows::*;
#[cfg(target_os = "ios")]
pub use crate::ios::*;
#[cfg(target_arch = "wasm32")]
pub use crate::web::*;
}
pub unsafe trait HasRawWindowHandle {
fn raw_window_handle(&self) -> RawWindowHandle;
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum RawWindowHandle {
#[cfg_attr(feature = "nightly-docs", doc(cfg(target_os = "ios")))]
#[cfg_attr(not(feature = "nightly-docs"), cfg(target_os = "ios"))]
IOS(ios::IOSHandle),
#[cfg_attr(feature = "nightly-docs", doc(cfg(target_os = "macos")))]
#[cfg_attr(not(feature = "nightly-docs"), cfg(target_os = "macos"))]
MacOS(macos::MacOSHandle),
#[cfg_attr(
feature = "nightly-docs",
doc(cfg(any(
target_os = "linux",
target_os = "dragonfly",
target_os = "freebsd",
target_os = "netbsd",
target_os = "openbsd"
)))
)]
#[cfg_attr(
not(feature = "nightly-docs"),
cfg(any(
target_os = "linux",
target_os = "dragonfly",
target_os = "freebsd",
target_os = "netbsd",
target_os = "openbsd"
))
)]
Xlib(unix::XlibHandle),
#[cfg_attr(
feature = "nightly-docs",
doc(cfg(any(
target_os = "linux",
target_os = "dragonfly",
target_os = "freebsd",
target_os = "netbsd",
target_os = "openbsd"
)))
)]
#[cfg_attr(
not(feature = "nightly-docs"),
cfg(any(
target_os = "linux",
target_os = "dragonfly",
target_os = "freebsd",
target_os = "netbsd",
target_os = "openbsd"
))
)]
Xcb(unix::XcbHandle),
#[cfg_attr(
feature = "nightly-docs",
doc(cfg(any(
target_os = "linux",
target_os = "dragonfly",
target_os = "freebsd",
target_os = "netbsd",
target_os = "openbsd"
)))
)]
#[cfg_attr(
not(feature = "nightly-docs"),
cfg(any(
target_os = "linux",
target_os = "dragonfly",
target_os = "freebsd",
target_os = "netbsd",
target_os = "openbsd"
))
)]
Wayland(unix::WaylandHandle),
#[cfg_attr(feature = "nightly-docs", doc(cfg(target_os = "windows")))]
#[cfg_attr(not(feature = "nightly-docs"), cfg(target_os = "windows"))]
Windows(windows::WindowsHandle),
#[cfg_attr(feature = "nightly-docs", doc(cfg(target_arch = "wasm32")))]
#[cfg_attr(not(feature = "nightly-docs"), cfg(target_arch = "wasm32"))]
Web(web::WebHandle),
#[cfg_attr(feature = "nightly-docs", doc(cfg(target_os = "android")))]
#[cfg_attr(not(feature = "nightly-docs"), cfg(target_os = "android"))]
Android(android::AndroidHandle),
#[doc(hidden)]
#[deprecated = "This field is used to ensure that this struct is non-exhaustive, so that it may be extended in the future. Do not refer to this field."]
__NonExhaustiveDoNotUse(seal::Seal),
}
mod seal {
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct Seal;
}