1#[doc(hidden)]
2pub use fancy_regex::Regex;
3#[doc(hidden)]
4pub type Lazy = once_cell::sync::Lazy<Regex>;
5
6#[macro_export]
7macro_rules! regex {
8 ($re:expr) => {{
9 static RE: $crate::Lazy =
10 $crate::Lazy::new(|| $crate::Regex::new($re).expect("Failed to parse static regex"));
11 $crate::Lazy::force(&RE)
12 }};
13}
14
15#[cfg(test)]
16mod tests {
17 use super::regex;
18
19 #[test]
20 fn match_numbers() {
21 let number = regex!("[0-9]+");
22 assert!(number.is_match("1824").unwrap());
23 assert!(!number.is_match("this wont match").unwrap());
24 }
25
26 #[test]
27 #[should_panic]
28 fn invalid_syntax() {
29 let _ = regex!("?[");
30 }
31}