[][src]Struct hyperscan_sys::hs_compile_error

#[repr(C)]
pub struct hs_compile_error {
    pub message: *mut c_char,
    pub expression: c_int,
}

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]

impl Copy for hs_compile_error[src]

impl Debug for hs_compile_error[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.