sqlx_core_oldapi/any/
feature_combinations.rs1#[macro_export]
16macro_rules! for_all_feature_combinations {
17 ( entries: [ $( ( $feat:literal, $payload:tt ) ),* $(,)? ], callback: $callback:ident ) => {
18 $crate::for_all_feature_combinations!(@recurse [] [] [ $( ( $feat, $payload ) )* ] $callback);
19 };
20
21 (@recurse [$($yes:tt)*] [$($no:tt)*] [ ( $feat:literal, $payload:tt ) $($rest:tt)* ] $callback:ident ) => {
22 $crate::for_all_feature_combinations!(@recurse [ $($yes)* ( $feat, $payload ) ] [ $($no)* ] [ $($rest)* ] $callback);
23 $crate::for_all_feature_combinations!(@recurse [ $($yes)* ] [ $($no)* $feat ] [ $($rest)* ] $callback);
24 };
25
26 (@recurse [ $( ( $yfeat:literal, $ypayload:tt ) )+ ] [ $( $nfeat:literal )* ] [] $callback:ident ) => {
28 #[cfg(all( $( feature = $yfeat ),+ $(, not(feature = $nfeat ))* ))]
29 $callback!( $( $ypayload ),+ );
30 };
31
32 (@recurse [] [ $( $nfeat:literal )* ] [] $callback:ident ) => {};
34}