raw_window_handle_extensions/
appkit.rs1use crate::{RawDisplayHandleType, RawWindowHandleType, VeryRawDisplayHandle, VeryRawWindowHandle};
2use raw_window_handle::{AppKitDisplayHandle, AppKitWindowHandle};
3use std::ptr::NonNull;
4
5impl From<AppKitWindowHandle> for VeryRawWindowHandle {
6 fn from(value: AppKitWindowHandle) -> Self {
7 Self {
8 handle_type: RawWindowHandleType::AppKit,
9 ptr_1: std::ptr::null_mut(),
10 ptr_2: value.ns_view.as_ptr(),
11 ptr_3: std::ptr::null_mut(),
12 id_1: Default::default(),
13 id_2: Default::default(),
14 }
15 }
16}
17
18impl From<VeryRawWindowHandle> for AppKitWindowHandle {
19 fn from(value: VeryRawWindowHandle) -> Self {
20 assert_eq!(value.handle_type, RawWindowHandleType::AppKit);
21 Self::new(NonNull::new(value.ptr_2).expect("AppKit ns_view must not be null"))
22 }
23}
24
25impl From<AppKitDisplayHandle> for VeryRawDisplayHandle {
26 fn from(_value: AppKitDisplayHandle) -> Self {
27 Self {
28 handle_type: RawDisplayHandleType::AppKit,
29 ptr_1: std::ptr::null_mut(),
30 id_1: Default::default(),
31 }
32 }
33}
34
35impl From<VeryRawDisplayHandle> for AppKitDisplayHandle {
36 fn from(value: VeryRawDisplayHandle) -> Self {
37 assert_eq!(value.handle_type, RawDisplayHandleType::AppKit);
38 Self::new()
39 }
40}