[−][src]Struct hyperscan_sys::hs_compile_error
A type containing error details that is returned by the compile calls (@ref hs_compile(), @ref hs_compile_multi() and @ref hs_compile_ext_multi()) on failure. The caller may inspect the values returned in this type to determine the cause of failure.
Common errors generated during the compile process include:
- Invalid parameter
An invalid argument was specified in the compile call.
- Unrecognised flag
An unrecognised value was passed in the flags argument.
- Pattern matches empty buffer
By default, Hyperscan only supports patterns that will always
consume at least one byte of input. Patterns that do not have this
property (such as /(abc)?/
) will produce this error unless
the @ref HS_FLAG_ALLOWEMPTY flag is supplied. Note that such
patterns will produce a match for every byte when scanned.
- Embedded anchors not supported
Hyperscan only supports the use of anchor meta-characters (such as
^
and $
) in patterns where they could only match
at the start or end of a buffer. A pattern containing an embedded
anchor, such as /abc^def/
, can never match, as there is no
way for abc
to precede the start of the data stream.
- Bounded repeat is too large
The pattern contains a repeated construct with very large finite bounds.
- Unsupported component type
An unsupported PCRE construct was used in the pattern.
- Unable to generate bytecode
This error indicates that Hyperscan was unable to compile a pattern that is syntactically valid. The most common cause is a pattern that is very long and complex or contains a large repeated subpattern.
- Unable to allocate memory
The library was unable to allocate temporary storage used during compilation time.
- Allocator returned misaligned memory
The memory allocator (either malloc() or the allocator set with @ref hs_set_allocator()) did not correctly return memory suitably aligned for the largest representable data type on this platform.
- Internal error
An unexpected error occurred: if this error is reported, please contact the Hyperscan team with a description of the situation.
Fields
message: *mut c_char
A human-readable error message describing the error.
expression: c_int
The zero-based number of the expression that caused the error (if this can be determined). If the error is not specific to an expression, then this value will be less than zero.
Trait Implementations
impl Clone for hs_compile_error
[src]
fn clone(&self) -> hs_compile_error
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Copy for hs_compile_error
[src]
impl Debug for hs_compile_error
[src]
Auto Trait Implementations
impl RefUnwindSafe for hs_compile_error
impl !Send for hs_compile_error
impl !Sync for hs_compile_error
impl Unpin for hs_compile_error
impl UnwindSafe for hs_compile_error
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,