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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// TODO: main crate docs.
#![warn(unsafe_op_in_unsafe_fn)]

#[macro_use]
extern crate extension_traits;

#[cfg(doctest)]
#[macro_use]
extern crate macro_rules_attribute;

#[cfg(test)]
extern crate self as own_ref;

#[macro_use]
mod utils;

pub use self::{
    own::OwnRef,
    slot::{Slot, slot, slots},
};

use self::{
    ඞ::*,
    prelude::*,
};

mod arities;

mod own;

pub
mod pin;

mod slot;

mod token;

pub
mod traits;

pub
mod prelude {
    #[doc(no_inline)]
    pub use {
        ::core::{
            future::Future,
            ops::Not as _,
            pin::{pin, Pin},
        },
        crate::{
            OwnRef,
            own_ref,
            slot::{slot, slots},
            traits::{FnOwn, MaybeUninitExt as _},
        },
        module::pin,
    };
    mod module {
        #![allow(warnings, clippy::all)]
        macro_rules! __ {() => ()} use __ as pin;
        pub use crate::*;
    }
}

#[doc(hidden)] /** Not part of the public API */ pub
mod ඞ {
    pub use {
        ::core::{
            marker::{
                PhantomData as PD,
            },
            mem::{
                ManuallyDrop as MD,
                MaybeUninit as MU,
            },
            pin::{
                Pin,
            },
            ops::{
                Not as _,
            },
        },
        crate::{
            own::{
                HackMD,
            },
            token::Unsafe,
        },
    };
}

#[cfg(any(test, doctest))]
mod tests;