use generic_array::{GenericArray, ArrayLength};
use std::marker::PhantomData;
use std::mem::transmute;
use crate::unsafe_std::ptrs::into_raw_ptr::IntoRawPtr;
use crate::unsafe_std::ptrs::raw_ptr::RawPtr;
use crate::unsafe_std::ptrs::void::void;
pub unsafe trait OpaqueHandle : Copy {
type Size: ArrayLength;
}
unsafe impl<T: OpaqueHandle> IntoRawPtr for T {
type Pointee = void;
unsafe fn to_ptr(&self) -> RawPtr<Self::Pointee> {
transmute(self)
}
}