MCPcopy Create free account
hub / github.com/carllerche/assert-struct / expand_closure_assertion

Function expand_closure_assertion

assert-struct-macros/src/expand.rs:645–663  ·  view source on GitHub ↗

Generate closure assertion with error collection

(value_expr: &TokenStream, pattern: &PatternClosure)

Source from the content-addressed store, hash-verified

643
644/// Generate closure assertion with error collection
645fn 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

Callers 1

expand_pattern_assertionFunction · 0.85

Calls 2

generate_error_pushFunction · 0.85
spanMethod · 0.45

Tested by

no test coverage detected