lv_std/unsafe_std/c/
opaque_handle.rs1use 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}