macro_rules! assert_output_mode {
($type_:ty, $operation:path, $case:expr, $candidate:expr) => { ... };
(FromBoolean($input:ident) => $output:ident, $case:expr, $candidate:expr) => { ... };
($operation:tt<$boolean:ident>() => $output:ident, $case:expr, $candidate:expr) => { ... };
($operation:tt($input:ident) => $output:ident, $case:expr, $candidate:expr) => { ... };
($operation:tt($input_a:ident, $input_b:ident) => $output:ident, $case:expr, $candidate:expr) => { ... };
($operation:tt($boolean:ident, $input_a:ident, $input_b:ident) => $output:ident, $case:expr, $candidate:expr) => { ... };
($operation:tt<$boolean:ident>() => $output:ident<$($parameter:ident),+>, $case:expr, $candidate:expr) => { ... };
($operation:tt($input:ident<$($parameter_a:ident),+>) => $output:ident<$($parameter_b:ident),+>, $case:expr, $candidate:expr) => { ... };
($operation:tt($input_a:ident<$($parameter_a:ident),+>, $input_b:ident<$($parameter_b:ident),+>) => $output:ident, $case:expr, $candidate:expr) => { ... };
($operation:tt($input_a:ident<$($parameter_a:ident),+>, $input_b:ident<$($parameter_b:ident),+>) => $output:ident<$($parameter_c:ident),+>, $case:expr, $candidate:expr) => { ... };
($operation:tt($boolean:ident, $input_a:ident<$($parameter_a:ident),+>, $input_b:ident<$($parameter_b:ident),+>) => $output:ident<$($parameter_c:ident),+>, $case:expr, $candidate:expr) => { ... };
}
Expand description
Asserts the output mode for a given operation and case.
ⓘassert_output_mode!(candidate, Add(Field, Field) => Field, &(mode_a, mode_b))