raw_window_handle_ffi/handles/
wayland.rs1use crate::{RawWindowHandle, RawWindowHandleData};
2use std::{ffi::c_void, ptr::NonNull};
3
4#[repr(C)]
8#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
9pub struct WaylandWindowHandle {
10 pub surface: NonNull<c_void>,
12}
13
14unsafe impl Send for WaylandWindowHandle {}
15unsafe impl Sync for WaylandWindowHandle {}
16
17impl From<raw_window_handle::WaylandWindowHandle> for WaylandWindowHandle {
18 fn from(value: raw_window_handle::WaylandWindowHandle) -> Self {
19 Self {
20 surface: value.surface,
21 }
22 }
23}
24
25impl WaylandWindowHandle {
26 pub unsafe fn into(self) -> raw_window_handle::WaylandWindowHandle {
32 raw_window_handle::WaylandWindowHandle::new(self.surface)
33 }
34}
35
36impl From<WaylandWindowHandle> for RawWindowHandle {
37 fn from(val: WaylandWindowHandle) -> RawWindowHandle {
38 RawWindowHandle {
39 kind: crate::RawWindowHandleKind::WaylandWindowHandle,
40 data: RawWindowHandleData { wayland: val },
41 }
42 }
43}