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

Function expand_regex_assertion

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

Generate regex assertion with error collection

(value_expr: &TokenStream, pattern: &PatternRegex)

Source from the content-addressed store, hash-verified

599#[cfg(feature = "regex")]
600/// Generate regex assertion with error collection
601fn expand_regex_assertion(value_expr: &TokenStream, pattern: &PatternRegex) -> TokenStream {
602 let pattern_str = &pattern.pattern;
603 let span = pattern.span;
604
605 let error_push = generate_error_push(
606 span,
607 quote!(format!("{:?}", #value_expr)),
608 quote!(None),
609 pattern.node_id,
610 );
611
612 quote_spanned! {span=>
613 {
614 use ::assert_struct::Like;
615 let re = ::assert_struct::__macro_support::Regex::new(#pattern_str)
616 .expect(concat!("Invalid regex pattern: ", #pattern_str));
617 if !#value_expr.like(&re) {
618 #error_push
619 }
620 }
621 }
622}
623
624#[cfg(feature = "regex")]
625/// Generate Like trait assertion with error collection

Callers 1

expand_pattern_assertionFunction · 0.85

Calls 1

generate_error_pushFunction · 0.85

Tested by

no test coverage detected