Generate closure assertion with error collection
(value_expr: &TokenStream, pattern: &PatternClosure)
| 643 | |
| 644 | /// Generate closure assertion with error collection |
| 645 | fn expand_closure_assertion(value_expr: &TokenStream, pattern: &PatternClosure) -> TokenStream { |
| 646 | let closure = &pattern.closure; |
| 647 | let span = closure.span(); |
| 648 | |
| 649 | let error_push = generate_error_push( |
| 650 | span, |
| 651 | quote!(format!("{:?}", #value_expr)), |
| 652 | quote!(None), |
| 653 | pattern.node_id, |
| 654 | ); |
| 655 | |
| 656 | quote_spanned! {span=> |
| 657 | { |
| 658 | if !::assert_struct::__macro_support::check_closure_condition(#value_expr, #closure) { |
| 659 | #error_push |
| 660 | } |
| 661 | } |
| 662 | } |
| 663 | } |
| 664 | |
| 665 | /// Generate map assertion with error collection using duck typing |
| 666 | /// Assumes map types have len() -> usize and get(&K) -> Option<&V> methods |
no test coverage detected