Type Definition hyperscan_sys::hs_compile_error_t

source ·
pub type hs_compile_error_t = hs_compile_error;
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.