raw_window_handle_extensions/
redox.rs

1use crate::{RawDisplayHandleType, RawWindowHandleType, VeryRawDisplayHandle, VeryRawWindowHandle};
2use raw_window_handle::{OrbitalDisplayHandle, OrbitalWindowHandle};
3use std::ptr::NonNull;
4
5impl From<OrbitalWindowHandle> for VeryRawWindowHandle {
6    fn from(value: OrbitalWindowHandle) -> Self {
7        Self {
8            handle_type: RawWindowHandleType::Orbital,
9            ptr_1: value.window.as_ptr(),
10            ptr_2: std::ptr::null_mut(),
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 OrbitalWindowHandle {
19    fn from(value: VeryRawWindowHandle) -> Self {
20        assert_eq!(value.handle_type, RawWindowHandleType::Orbital);
21        Self::new(
22            NonNull::new(value.ptr_1.into())
23                .expect("Orbital native window pointer must not be null"),
24        )
25    }
26}
27
28impl From<OrbitalDisplayHandle> for VeryRawDisplayHandle {
29    fn from(_value: OrbitalDisplayHandle) -> Self {
30        Self {
31            handle_type: RawDisplayHandleType::Orbital,
32            ptr_1: std::ptr::null_mut(),
33            id_1: Default::default(),
34        }
35    }
36}
37impl From<VeryRawDisplayHandle> for OrbitalDisplayHandle {
38    fn from(value: VeryRawDisplayHandle) -> Self {
39        assert_eq!(value.handle_type, RawDisplayHandleType::Orbital);
40        Self::new()
41    }
42}