11[package ]
22name = " SafeManuallyDrop"
3- version = " 1.0.2 "
3+ version = " 1.0.3 "
44authors = [
" Denis Kotlyarov (Денис Котляров) <[email protected] >" ]
55repository = " https://github.com/clucompany/SafeManuallyDrop.git"
66edition = " 2021"
@@ -23,7 +23,6 @@ rustdoc-args = ["--cfg", "docsrs"]
2323default = [
2424 # Flags:
2525 #
26-
2726 # ManuallyDrop and AutoManuallyDrop are always type safe and are automatically
2827 # checked on use if the debug_assertions flag is enabled (the flag is automatically
2928 # enabled if test build, debug build, or env: CARGO_PROFILE_RELEASE_DEBUG_ASSERTIONS=true).
@@ -54,13 +53,16 @@ default = [
5453
5554 # Trigs:
5655 #
57-
5856 # Ability to determine if an empty loop trigger has been executed.
5957 " support_istrig_loop" ,
6058
6159 # Support for PanicManuallyDrop, in case of undefined behavior
62- # of PanicManuallyDrop there will be a panic.
63- " support_panic_trig" ,
60+ # of ManuallyDrop there will be a panic.
61+ " support_panic_trig" ,
62+
63+ # Support for AbortManuallyDrop, in case of undefined behavior
64+ # of ManuallyDrop there will be a abort. (Note that this feature requires std.)
65+ # "support_abort_trig",
6466
6567 # HookManuallyDrop support, in case of undefined HookManuallyDrop behavior,
6668 # the hook function will be called.
@@ -74,9 +76,13 @@ default = [
7476 # cause a panic in case of undefined behavior.
7577 # "always_deftrig_panic",
7678
79+ # The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always
80+ # cause a abort in case of undefined behavior.
81+ # "always_deftrig_abort",
82+
7783 # The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always
7884 # call the hook function in case of undefined behavior.
79- # "always_deftrig_hookfn",
85+ " always_deftrig_hookfn" ,
8086
8187 # The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always call
8288 # the +1 counter function in case of undefined behavior.
@@ -85,39 +91,61 @@ default = [
8591 # The behavior for the simple type AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop will always call
8692 # the eternal loop function in case of undefined behavior.
8793 # "always_deftrig_loop"
88-
89- # INFO:
90- # If the behavior for the general AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop is not fixed,
91- # the behavior will be determined according to the following scheme:
92- #
93- # always_deftrig_panic not exists AND
94- # always_deftrig_hookfn not exists AND
95- # always_deftrig_count not exists AND
96- # always_deftrig_loop not exists THEN
97- #
98- # support_hookfn_trig -> Hook, else:
99- # support_panic_trig -> Panic, else:
100- # support_count_trig -> Count, else:
101- # Loop
102- #
10394]
95+
96+ # ManuallyDrop and AutoManuallyDrop are always type safe and are automatically
97+ # checked on use if the debug_assertions flag is enabled (the flag is automatically
98+ # enabled if test build, debug build, or env: CARGO_PROFILE_RELEASE_DEBUG_ASSERTIONS=true).
99+ #
100+ # (Also, AlwaysSafeManuallyDrop is always checked for safety when it is used, regardless of the flags.)
104101always_check_in_case_debug_assertions = []
102+ # ManuallyDrop and AutoManuallyDrop are always checked when used,
103+ # regardless of external flags.
104+ #
105+ # (Also, AlwaysSafeManuallyDrop is always checked for safety when it is used, regardless of the flags.)
105106always_safe_manuallydrop = []
106107
108+ # Enable additional internal checks of the SafeManuallyDrop library when
109+ # the debug_assertions flag is enabled (does not depend on the always_check_in_case_debug_assertions
110+ # and always_safe_manuallydrop options). This flag type only applies to internal
111+ # library function checks, it is independent of ManuallyDrop and its valid or invalid usage.
107112allow_fullinternal_debug_assertions = []
108113
114+ # Always create a modular table of library flags used in the build.
115+ # (crate::core::flags)
109116always_build_flagstable = []
110117
111118support_hookfn_trig = []
119+ # Support for CounterManuallyDrop, in case of undefined behavior,
120+ # CounterManuallyDrop will add +1 to the counter.
112121support_count_trig = []
122+ # Support for AbortManuallyDrop, in case of undefined behavior
123+ # of ManuallyDrop there will be a abort. (Note that this feature requires std.)
124+ support_abort_trig = []
125+ # Support for PanicManuallyDrop, in case of undefined behavior
126+ # of ManuallyDrop there will be a panic.
113127support_panic_trig = []
128+ # Ability to determine if an empty loop trigger has been executed.
114129support_istrig_loop = []
115130
131+ # Preserve unsafe fn flags even if functions are safe
132+ # (may be required for additional compatibility with the standard API)
116133always_compatible_stdapi = []
117134
135+ # The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always
136+ # cause a panic in case of undefined behavior.
118137always_deftrig_panic = []
138+ # The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always
139+ # cause a abort in case of undefined behavior.
140+ always_deftrig_abort = []
141+ # The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always
142+ # call the hook function in case of undefined behavior.
119143always_deftrig_hookfn = []
144+ # The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always call
145+ # the +1 counter function in case of undefined behavior.
120146always_deftrig_count = []
147+ # The behavior for the simple type AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop will always call
148+ # the eternal loop function in case of undefined behavior.
121149always_deftrig_loop = []
122150
123151[dependencies ]
0 commit comments