raw_window_handle_ffi/handles/
win_rt.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 WinRtWindowHandle {
10 pub core_window: NonNull<c_void>,
12}
13
14unsafe impl Send for WinRtWindowHandle {}
15unsafe impl Sync for WinRtWindowHandle {}
16
17impl From<raw_window_handle::WinRtWindowHandle> for WinRtWindowHandle {
18 fn from(value: raw_window_handle::WinRtWindowHandle) -> Self {
19 Self {
20 core_window: value.core_window,
21 }
22 }
23}
24
25impl WinRtWindowHandle {
26 pub unsafe fn into(self) -> raw_window_handle::WinRtWindowHandle {
32 raw_window_handle::WinRtWindowHandle::new(self.core_window)
33 }
34}
35
36impl From<WinRtWindowHandle> for RawWindowHandle {
37 fn from(val: WinRtWindowHandle) -> RawWindowHandle {
38 RawWindowHandle {
39 kind: crate::RawWindowHandleKind::WinRtWindowHandle,
40 data: RawWindowHandleData { win_rt: val },
41 }
42 }
43}