1c67d6573Sopenharmony_ci#![cfg_attr(feature = "pattern", feature(pattern))]
2c67d6573Sopenharmony_ci
3c67d6573Sopenharmony_cimacro_rules! regex_new {
4c67d6573Sopenharmony_ci    ($re:expr) => {{
5c67d6573Sopenharmony_ci        use regex::internal::ExecBuilder;
6c67d6573Sopenharmony_ci        ExecBuilder::new($re)
7c67d6573Sopenharmony_ci            .bounded_backtracking()
8c67d6573Sopenharmony_ci            .build()
9c67d6573Sopenharmony_ci            .map(|e| e.into_regex())
10c67d6573Sopenharmony_ci    }};
11c67d6573Sopenharmony_ci}
12c67d6573Sopenharmony_ci
13c67d6573Sopenharmony_cimacro_rules! regex {
14c67d6573Sopenharmony_ci    ($re:expr) => {
15c67d6573Sopenharmony_ci        regex_new!($re).unwrap()
16c67d6573Sopenharmony_ci    };
17c67d6573Sopenharmony_ci}
18c67d6573Sopenharmony_ci
19c67d6573Sopenharmony_cimacro_rules! regex_set_new {
20c67d6573Sopenharmony_ci    ($re:expr) => {{
21c67d6573Sopenharmony_ci        use regex::internal::ExecBuilder;
22c67d6573Sopenharmony_ci        ExecBuilder::new_many($re)
23c67d6573Sopenharmony_ci            .bounded_backtracking()
24c67d6573Sopenharmony_ci            .build()
25c67d6573Sopenharmony_ci            .map(|e| e.into_regex_set())
26c67d6573Sopenharmony_ci    }};
27c67d6573Sopenharmony_ci}
28c67d6573Sopenharmony_ci
29c67d6573Sopenharmony_cimacro_rules! regex_set {
30c67d6573Sopenharmony_ci    ($res:expr) => {
31c67d6573Sopenharmony_ci        regex_set_new!($res).unwrap()
32c67d6573Sopenharmony_ci    };
33c67d6573Sopenharmony_ci}
34c67d6573Sopenharmony_ci
35c67d6573Sopenharmony_ci// Must come before other module definitions.
36c67d6573Sopenharmony_ciinclude!("macros_str.rs");
37c67d6573Sopenharmony_ciinclude!("macros.rs");
38c67d6573Sopenharmony_ci
39c67d6573Sopenharmony_cimod api;
40c67d6573Sopenharmony_cimod api_str;
41c67d6573Sopenharmony_cimod crazy;
42c67d6573Sopenharmony_cimod flags;
43c67d6573Sopenharmony_cimod fowler;
44c67d6573Sopenharmony_cimod multiline;
45c67d6573Sopenharmony_cimod noparse;
46c67d6573Sopenharmony_cimod regression;
47c67d6573Sopenharmony_cimod replace;
48c67d6573Sopenharmony_cimod searcher;
49c67d6573Sopenharmony_cimod set;
50c67d6573Sopenharmony_cimod suffix_reverse;
51c67d6573Sopenharmony_ci#[cfg(feature = "unicode")]
52c67d6573Sopenharmony_cimod unicode;
53c67d6573Sopenharmony_ci#[cfg(feature = "unicode-perl")]
54c67d6573Sopenharmony_cimod word_boundary;
55c67d6573Sopenharmony_ci#[cfg(feature = "unicode-perl")]
56c67d6573Sopenharmony_cimod word_boundary_unicode;
57