lv_std/unsafe_std/c/
opaque_handle.rs

1use generic_array::{GenericArray, ArrayLength};
2use std::marker::PhantomData;
3use std::mem::transmute;
4use crate::unsafe_std::ptrs::into_raw_ptr::IntoRawPtr;
5use crate::unsafe_std::ptrs::raw_ptr::RawPtr;
6use crate::unsafe_std::ptrs::void::void;
7
8
9pub unsafe trait OpaqueHandle : Copy {
10    type Size: ArrayLength;
11}
12
13unsafe impl<T: OpaqueHandle> IntoRawPtr for T {
14    type Pointee = void;
15
16    unsafe fn to_ptr(&self) -> RawPtr<Self::Pointee> {
17        transmute(self)
18    }
19}