Enum hyperscan::error::HyperscanRuntimeError
source · #[repr(i8)]pub enum HyperscanRuntimeError {
Show 13 variants
Invalid = -1,
NoMem = -2,
ScanTerminated = -3,
CompilerError = -4,
DbVersionError = -5,
DbPlatformError = -6,
DbModeError = -7,
BadAlign = -8,
BadAlloc = -9,
ScratchInUse = -10,
ArchError = -11,
InsufficientSpace = -12,
UnknownError = -13,
}Expand description
Native error code from the underlying hyperscan library.
Variants§
Invalid = -1
A parameter passed to this function was invalid.
This error is only returned in cases where the function can detect an invalid parameter – it cannot be relied upon to detect (for example) pointers to freed memory or other invalid data.
NoMem = -2
A memory allocation failed.
ScanTerminated = -3
The engine was terminated by callback.
This return value indicates that the target buffer was partially scanned,
but that the callback function returned
MatchResult::CeaseMatching
after a match was located.
CompilerError = -4
The pattern compiler failed, and the CompileError should be
inspected for more detail.
DbVersionError = -5
The given database was built for a different version of Hyperscan.
DbPlatformError = -6
The given database was built for a different platform (i.e., CPU type).
DbModeError = -7
The given database was built for a different mode of operation.
This error is returned when streaming calls are used with a block or vectored database and vice versa.
BadAlign = -8
A parameter passed to this function was not correctly aligned.
BadAlloc = -9
The memory allocator returned incorrectly aligned memory.
The memory allocator (either libc::malloc() or the allocator set with
crate::alloc::set_allocator()) did not
correctly return memory suitably aligned for the largest representable
data type on this platform.
ScratchInUse = -10
The scratch region was already in use.
This error is returned when Hyperscan is able to detect that the scratch region given is already in use by another Hyperscan API call.
A separate scratch region, allocated with
Scratch::setup_for_db() or
Scratch::try_clone(), is required
for every concurrent caller of the Hyperscan API.
For example, this error might be returned when
scan_sync() has been
called inside a callback delivered by a currently-executing
scan_sync() call using the same
scratch region.
Note: Not all concurrent uses of scratch regions may be detected. This error is intended as a best-effort debugging tool, not a guarantee.
Note: safe Rust code should never see this error;
Arc::make_mut() is often an effective way to
avoid this while preserving the ergonomics of a Clone and Send
reference type. This approach is used in this library’s
stream module.
ArchError = -11
Unsupported CPU architecture.
This error is returned when Hyperscan is able to detect that the current system does not support the required instruction set.
At a minimum, Hyperscan requires Supplemental Streaming SIMD Extensions 3 (SSSE3).
InsufficientSpace = -12
Provided buffer was too small.
This error indicates that there was insufficient space in the buffer. The call should be repeated with a larger provided buffer.
Note: in this situation, it is normal for the amount of space required to be returned in the same manner as the used space would have been returned if the call was successful.
This value is referenced internally in
LiveStream::compress() when requesting the
amount of memory to allocate for a compressed stream. Users of this
library should never see this error when using the
CompressReserveBehavior
interface.
UnknownError = -13
Unexpected internal error.
This error indicates that there was unexpected matching behaviors. This could be related to invalid usage of stream and scratch space or invalid memory operations by users.
Trait Implementations§
source§impl Clone for HyperscanRuntimeError
impl Clone for HyperscanRuntimeError
source§fn clone(&self) -> HyperscanRuntimeError
fn clone(&self) -> HyperscanRuntimeError
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for HyperscanRuntimeError
impl Debug for HyperscanRuntimeError
source§impl Display for HyperscanRuntimeError
impl Display for HyperscanRuntimeError
source§impl Error for HyperscanRuntimeError
impl Error for HyperscanRuntimeError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
source§impl From<HyperscanRuntimeError> for CompressionError
impl From<HyperscanRuntimeError> for CompressionError
source§fn from(source: HyperscanRuntimeError) -> Self
fn from(source: HyperscanRuntimeError) -> Self
source§impl From<HyperscanRuntimeError> for HyperscanCompileError
impl From<HyperscanRuntimeError> for HyperscanCompileError
source§fn from(source: HyperscanRuntimeError) -> Self
fn from(source: HyperscanRuntimeError) -> Self
source§impl From<HyperscanRuntimeError> for HyperscanError
impl From<HyperscanRuntimeError> for HyperscanError
source§fn from(source: HyperscanRuntimeError) -> Self
fn from(source: HyperscanRuntimeError) -> Self
source§impl From<HyperscanRuntimeError> for ScanError
impl From<HyperscanRuntimeError> for ScanError
source§fn from(source: HyperscanRuntimeError) -> Self
fn from(source: HyperscanRuntimeError) -> Self
source§impl From<HyperscanRuntimeError> for i8
impl From<HyperscanRuntimeError> for i8
source§fn from(enum_value: HyperscanRuntimeError) -> Self
fn from(enum_value: HyperscanRuntimeError) -> Self
source§impl From<i8> for HyperscanRuntimeError
impl From<i8> for HyperscanRuntimeError
source§impl Hash for HyperscanRuntimeError
impl Hash for HyperscanRuntimeError
source§impl Ord for HyperscanRuntimeError
impl Ord for HyperscanRuntimeError
source§fn cmp(&self, other: &HyperscanRuntimeError) -> Ordering
fn cmp(&self, other: &HyperscanRuntimeError) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for HyperscanRuntimeError
impl PartialEq for HyperscanRuntimeError
source§fn eq(&self, other: &HyperscanRuntimeError) -> bool
fn eq(&self, other: &HyperscanRuntimeError) -> bool
self and other values to be equal, and is used
by ==.source§impl PartialOrd for HyperscanRuntimeError
impl PartialOrd for HyperscanRuntimeError
source§fn partial_cmp(&self, other: &HyperscanRuntimeError) -> Option<Ordering>
fn partial_cmp(&self, other: &HyperscanRuntimeError) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read moreimpl Copy for HyperscanRuntimeError
impl Eq for HyperscanRuntimeError
impl StructuralEq for HyperscanRuntimeError
impl StructuralPartialEq for HyperscanRuntimeError
Auto Trait Implementations§
impl RefUnwindSafe for HyperscanRuntimeError
impl Send for HyperscanRuntimeError
impl Sync for HyperscanRuntimeError
impl Unpin for HyperscanRuntimeError
impl UnwindSafe for HyperscanRuntimeError
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.