mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
Add Direct API documentation
Signed-off-by: Yoan Picchi <yoan.picchi@arm.com>
This commit is contained in:
parent
5782780e11
commit
28986c364a
@ -51,3 +51,10 @@ Compile mode flags
|
|||||||
.. doxygengroup:: HS_MODE_FLAG
|
.. doxygengroup:: HS_MODE_FLAG
|
||||||
:content-only:
|
:content-only:
|
||||||
:no-link:
|
:no-link:
|
||||||
|
|
||||||
|
******************************
|
||||||
|
Other Constants
|
||||||
|
******************************
|
||||||
|
|
||||||
|
.. doxygendefine:: HS_SHORT_PATTERN_THRESHOLD
|
||||||
|
:no-link:
|
||||||
|
@ -123,6 +123,9 @@ Supported flags: :c:member:`HS_FLAG_CASELESS`, :c:member:`HS_FLAG_SINGLEMATCH`,
|
|||||||
The new literal APIs introduced here are designed for rule sets
|
The new literal APIs introduced here are designed for rule sets
|
||||||
containing only pure literal expressions.
|
containing only pure literal expressions.
|
||||||
|
|
||||||
|
In tight loops where performance is critical, some further specialization of the
|
||||||
|
literal search exists in the form of :ref:`direct_api`
|
||||||
|
|
||||||
***************
|
***************
|
||||||
Pattern Support
|
Pattern Support
|
||||||
***************
|
***************
|
||||||
|
28
doc/dev-reference/direct_api.rst
Normal file
28
doc/dev-reference/direct_api.rst
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
.. _direct_api:
|
||||||
|
|
||||||
|
####################
|
||||||
|
Direct API extension
|
||||||
|
####################
|
||||||
|
|
||||||
|
Even though pure literal searches are fast, there is still some overhead.
|
||||||
|
In tight loops where both the pattern and the data are small (say, a
|
||||||
|
4-character pattern with a 32-character data buffer), this overhead can
|
||||||
|
become noticeable. In such cases, the functions provided by the Direct API
|
||||||
|
offer a minimal-overhead alternative, at the cost of a reduced set of
|
||||||
|
functionality.
|
||||||
|
|
||||||
|
Each type of call is designed for a specific pattern type:
|
||||||
|
- Strings
|
||||||
|
- Pairs of two characters
|
||||||
|
- Single characters
|
||||||
|
Each type comes in a ``single`` search and ``set`` search variant, depending
|
||||||
|
on whether you need to search for one or multiple patterns.
|
||||||
|
|
||||||
|
For each case, compile, search, and free functions are provided.
|
||||||
|
|
||||||
|
All search functions are case-sensitive.
|
||||||
|
|
||||||
|
The single string search has an additional specialization based on the length
|
||||||
|
of the pattern. If the pattern is "short", ie shorter than or equal to
|
||||||
|
:c:member:`HS_SHORT_PATTERN_THRESHOLD` characters—then
|
||||||
|
:c:func:`hs_compile_short_literal_search` may be used instead.
|
@ -21,3 +21,4 @@ Vectorscan |version| Developer's Reference Guide
|
|||||||
api_constants
|
api_constants
|
||||||
api_files
|
api_files
|
||||||
chimera
|
chimera
|
||||||
|
direct_api
|
||||||
|
Loading…
x
Reference in New Issue
Block a user