1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#![warn(missing_docs)]
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum Infallible {}
pub trait OpaqueTypedef: Sized {
type Inner;
type Error;
unsafe fn from_inner_unchecked(inner: Self::Inner) -> Self;
fn from_inner(inner: Self::Inner) -> Result<Self, Self::Error>;
fn into_inner(self) -> Self::Inner;
fn as_inner(&self) -> &Self::Inner;
unsafe fn as_inner_mut(&mut self) -> &mut Self::Inner;
}
pub trait OpaqueTypedefUnsized {
type Inner: ?Sized;
type Error;
unsafe fn from_inner_unchecked(inner: &Self::Inner) -> &Self;
unsafe fn from_inner_unchecked_mut(inner: &mut Self::Inner) -> &mut Self;
fn from_inner(inner: &Self::Inner) -> Result<&Self, Self::Error>;
fn from_inner_mut(inner: &mut Self::Inner) -> Result<&mut Self, Self::Error>;
fn as_inner(&self) -> &Self::Inner;
unsafe fn as_inner_mut(&mut self) -> &mut Self::Inner;
}