Generate regex assertion with error collection
(value_expr: &TokenStream, pattern: &PatternRegex)
| 599 | #[cfg(feature = "regex")] |
| 600 | /// Generate regex assertion with error collection |
| 601 | fn 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 |
no test coverage detected