devela/code/util/
deprecate.rs
1#[macro_export]
16#[cfg_attr(cargo_primary_package, doc(hidden))]
17macro_rules! deprecate_feature {
18 ( old: $old_feature:literal
19 $(, new: $new_feature:literal )?
20 $(, since: $since:literal )?
21 ) => {
22 $crate::paste! {
23 #[$crate::compile_attr(
25 all( none($($new_feature)?), none($($since)?) ),
26 deprecated(note = "\nWARNING. `" $old_feature
27 "` feature deprecated." )
28 )]
29
30 #[$crate::compile_attr(
32 all( none($($new_feature)?), some($($since)?) ),
33 deprecated( $(since = $since,)? note = "\nWARNING. `" $old_feature
34 "` feature deprecated since version " $($since)? "." )
35 )]
36
37 #[$crate::compile_attr(
39 all( some($($new_feature)?), none($($since)?) ),
40 deprecated(note = "\nWARNING. `" $old_feature
41 "` feature deprecated, use `" $($new_feature)? "` instead." )
42 )]
43
44 #[$crate::compile_attr(
46 all( some($($new_feature)?), some($($since)?) ),
47 deprecated( $(since = $since,)? note = "\nWARNING. `" $old_feature
48 "` feature deprecated since version " $($since)?
49 ", use `" $($new_feature)? "` instead." )
50 )]
51
52 #[cfg(feature = $old_feature)]
53 const fn [<deprecate_feature_ $old_feature:snake>]() {}
54
55 #[cfg(feature = $old_feature)]
56 #[allow(dead_code)]
57 const [<DEPRECATED_ $old_feature:snake:upper>]: ()
58 = [<deprecate_feature_ $old_feature:snake>]();
59 }
60 };
61}
62#[doc(inline)]
63pub use deprecate_feature;