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