-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
151 lines (126 loc) · 6.46 KB
/
Cargo.toml
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
[package]
name = "SafeManuallyDrop"
version = "1.0.4"
authors = ["Denis Kotlyarov (Денис Котляров) <[email protected]>"]
repository = "https://github.com/clucompany/SafeManuallyDrop.git"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
description = "ManuallyDrop Safe: A robust version of ManuallyDrop with features and options for tracking undefined behavior."
keywords = ["safe_manually_drop", "safemanuallydrop", "SafeManuallyDrop", "no_std", "clucompany"]
categories = ["development-tools", "development-tools::testing", "development-tools::debugging", "api-bindings", "memory-management"]
# docs.rs-specific configuration
[package.metadata.docs.rs]
# document all features
all-features = true
# defines the configuration attribute `docsrs`
rustdoc-args = ["--cfg", "docsrs"]
[features]
default = [
# Flags:
#
# ManuallyDrop and AutoManuallyDrop are always type safe and are automatically
# checked on use if the debug_assertions flag is enabled (the flag is automatically
# enabled if test build, debug build, or env: CARGO_PROFILE_RELEASE_DEBUG_ASSERTIONS=true).
#
# (Also, AlwaysSafeManuallyDrop is always checked for safety when it is used, regardless of the flags.)
"always_check_in_case_debug_assertions",
# ManuallyDrop and AutoManuallyDrop are always checked when used,
# regardless of external flags.
#
# (Also, AlwaysSafeManuallyDrop is always checked for safety when it is used, regardless of the flags.)
#"always_safe_manuallydrop",
# Enable additional internal checks of the SafeManuallyDrop library when
# the debug_assertions flag is enabled (does not depend on the always_check_in_case_debug_assertions
# and always_safe_manuallydrop options). This flag type only applies to internal
# library function checks, it is independent of ManuallyDrop and its valid or invalid usage.
#
# "allow_extended_debug_assertions",
# Preserve unsafe fn flags even if functions are safe
# (may be required for additional compatibility with the standard API)
"always_compatible_stdapi",
# Always create a modular table of library flags used in the build.
# (crate::core::flags)
"flags_table",
# Trigs:
#
# Ability to determine if an empty loop trigger has been executed.
"support_istrig_loop",
# Support for PanicManuallyDrop, in case of undefined behavior
# of ManuallyDrop there will be a panic.
"support_panic_trig",
# Support for AbortManuallyDrop, in case of undefined behavior
# of ManuallyDrop there will be a abort. (Note that this feature requires std.)
#"support_abort_trig",
# HookManuallyDrop support, in case of undefined HookManuallyDrop behavior,
# the hook function will be called.
"support_hookfn_trig",
# Support for CounterManuallyDrop, in case of undefined behavior,
# CounterManuallyDrop will add +1 to the counter.
#"support_count_trig",
# The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always
# cause a panic in case of undefined behavior.
#"always_deftrig_panic",
# The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always
# cause a abort in case of undefined behavior.
#"always_deftrig_abort",
# The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always
# call the hook function in case of undefined behavior.
"always_deftrig_hookfn",
# The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always call
# the +1 counter function in case of undefined behavior.
#"always_deftrig_count",
# The behavior for the simple type AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop will always call
# the eternal loop function in case of undefined behavior.
#"always_deftrig_loop"
]
# ManuallyDrop and AutoManuallyDrop are always type safe and are automatically
# checked on use if the debug_assertions flag is enabled (the flag is automatically
# enabled if test build, debug build, or env: CARGO_PROFILE_RELEASE_DEBUG_ASSERTIONS=true).
#
# (Also, AlwaysSafeManuallyDrop is always checked for safety when it is used, regardless of the flags.)
always_check_in_case_debug_assertions = []
# ManuallyDrop and AutoManuallyDrop are always checked when used,
# regardless of external flags.
#
# (Also, AlwaysSafeManuallyDrop is always checked for safety when it is used, regardless of the flags.)
always_safe_manuallydrop = []
# Enable additional internal checks of the SafeManuallyDrop library when
# the debug_assertions flag is enabled (does not depend on the always_check_in_case_debug_assertions
# and always_safe_manuallydrop options). This flag type only applies to internal
# library function checks, it is independent of ManuallyDrop and its valid or invalid usage.
allow_extended_debug_assertions = []
# Always create a modular table of library flags used in the build.
# (crate::core::flags)
flags_table = []
support_hookfn_trig = []
# Support for CounterManuallyDrop, in case of undefined behavior,
# CounterManuallyDrop will add +1 to the counter.
support_count_trig = []
# Support for AbortManuallyDrop, in case of undefined behavior
# of ManuallyDrop there will be a abort. (Note that this feature requires std.)
support_abort_trig = []
# Support for PanicManuallyDrop, in case of undefined behavior
# of ManuallyDrop there will be a panic.
support_panic_trig = []
# Ability to determine if an empty loop trigger has been executed.
support_istrig_loop = []
# Preserve unsafe fn flags even if functions are safe
# (may be required for additional compatibility with the standard API)
always_compatible_stdapi = []
# The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always
# cause a panic in case of undefined behavior.
always_deftrig_panic = []
# The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always
# cause a abort in case of undefined behavior.
always_deftrig_abort = []
# The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always
# call the hook function in case of undefined behavior.
always_deftrig_hookfn = []
# The behavior for the simple AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop type will always call
# the +1 counter function in case of undefined behavior.
always_deftrig_count = []
# The behavior for the simple type AutoSafeManuallyDrop/AlwaysSafeManuallyDrop/ManuallyDrop will always call
# the eternal loop function in case of undefined behavior.
always_deftrig_loop = []
[dependencies]