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

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§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
This method tests for self and other values to be equal, and is used by ==.
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.