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