summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Gallant <jamslam@gmail.com>2019-04-14 16:44:18 -0400
committerAndrew Gallant <jamslam@gmail.com>2019-04-14 19:29:27 -0400
commita9d71a03680ac9c7b0b26ce6b0570145e7e2e2de (patch)
treeb3e3be4c3b830cdcf4a15da656c67d21a37d25eb
parentf3646242cc193b4887cc512b57cca2e80de458b2 (diff)
pcre2: add a few re-exports
This adds the top-level is_jit_available and version free functions from the underlying pcre2 crate, and also forwards the max_jit_stack_size option.
-rw-r--r--grep-pcre2/src/lib.rs1
-rw-r--r--grep-pcre2/src/matcher.rs21
2 files changed, 22 insertions, 0 deletions
diff --git a/grep-pcre2/src/lib.rs b/grep-pcre2/src/lib.rs
index 245ceab7..d7cb0156 100644
--- a/grep-pcre2/src/lib.rs
+++ b/grep-pcre2/src/lib.rs
@@ -10,6 +10,7 @@ extern crate pcre2;
pub use error::{Error, ErrorKind};
pub use matcher::{RegexCaptures, RegexMatcher, RegexMatcherBuilder};
+pub use pcre2::{is_jit_available, version};
mod error;
mod matcher;
diff --git a/grep-pcre2/src/matcher.rs b/grep-pcre2/src/matcher.rs
index 105448fe..2c87fa1a 100644
--- a/grep-pcre2/src/matcher.rs
+++ b/grep-pcre2/src/matcher.rs
@@ -227,6 +227,27 @@ impl RegexMatcherBuilder {
self.builder.jit_if_available(yes);
self
}
+
+ /// Set the maximum size of PCRE2's JIT stack, in bytes. If the JIT is
+ /// not enabled, then this has no effect.
+ ///
+ /// When `None` is given, no custom JIT stack will be created, and instead,
+ /// the default JIT stack is used. When the default is used, its maximum
+ /// size is 32 KB.
+ ///
+ /// When this is set, then a new JIT stack will be created with the given
+ /// maximum size as its limit.
+ ///
+ /// Increasing the stack size can be useful for larger regular expressions.
+ ///
+ /// By default, this is set to `None`.
+ pub fn max_jit_stack_size(
+ &mut self,
+ bytes: Option<usize>,
+ ) -> &mut RegexMatcherBuilder {
+ self.builder.max_jit_stack_size(bytes);
+ self
+ }
}
/// An implementation of the `Matcher` trait using PCRE2.