try_drop/handlers/
on_uninit.rs1mod private {
4 pub trait Sealed {}
5}
6
7#[cfg(any(feature = "ds-write", feature = "ds-panic"))]
8mod use_default {
9 use super::*;
10
11 #[cfg_attr(
13 feature = "derives",
14 derive(Debug, Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)
15 )]
16 pub enum UseDefaultOnUninit {}
17
18 impl OnUninit for UseDefaultOnUninit {
19 type ExtraData = ();
20 }
21 impl private::Sealed for UseDefaultOnUninit {}
22}
23
24use core::sync::atomic::AtomicBool;
25#[cfg(any(feature = "ds-write", feature = "ds-panic"))]
26pub use use_default::*;
27
28pub trait OnUninit: private::Sealed {
30 type ExtraData;
32}
33
34#[cfg_attr(
36 feature = "derives",
37 derive(Debug, Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)
38)]
39pub enum ErrorOnUninit {}
40
41impl OnUninit for ErrorOnUninit {
42 type ExtraData = ();
43}
44impl private::Sealed for ErrorOnUninit {}
45
46#[cfg_attr(
48 feature = "derives",
49 derive(Debug, Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)
50)]
51pub enum PanicOnUninit {}
52
53impl OnUninit for PanicOnUninit {
54 type ExtraData = ();
55}
56impl private::Sealed for PanicOnUninit {}
57
58#[cfg_attr(
60 feature = "derives",
61 derive(Debug, Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)
62)]
63pub enum DoNothingOnUninit {}
64
65impl OnUninit for DoNothingOnUninit {
66 type ExtraData = ();
67}
68impl private::Sealed for DoNothingOnUninit {}
69
70#[cfg_attr(
72 feature = "derives",
73 derive(Debug, Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)
74)]
75pub enum FlagOnUninit {}
76
77impl OnUninit for FlagOnUninit {
78 type ExtraData = AtomicBool;
79}
80impl private::Sealed for FlagOnUninit {}