summaryrefslogtreecommitdiff
path: root/src/rpc/envoy.extensions.matching.input_matchers.hyperscan.v3alpha.rs
blob: a3bf4d0be75bad5aa91c2e3a08aaf1a41b70cf6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// @generated
// This file is @generated by prost-build.
// \[#protodoc-title: Hyperscan matcher\]
// Hyperscan :ref:`configuration overview <config_hyperscan>`.
// \[#extension: envoy.matching.input_matchers.hyperscan\]

/// `Hyperscan <<https://github.com/intel/hyperscan>`_> regex matcher. The matcher uses the Hyperscan
/// engine which exploits x86 SIMD instructions to accelerate matching large numbers of regular
/// expressions simultaneously across streams of data.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Hyperscan {
    /// Specifies a set of regex expressions that the input should match on.
    #[prost(message, repeated, tag="1")]
    pub regexes: ::prost::alloc::vec::Vec<hyperscan::Regex>,
}
/// Nested message and enum types in `Hyperscan`.
pub mod hyperscan {
    /// \[#next-free-field: 11\]
    #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
    pub struct Regex {
        /// The regex expression.
        ///
        /// The expression must represent only the pattern to be matched, with no delimiters or flags.
        #[prost(string, tag="1")]
        pub regex: ::prost::alloc::string::String,
        /// The ID of the regex expression.
        ///
        /// This option is designed to be used on the sub-expressions in logical combinations.
        #[prost(uint32, tag="2")]
        pub id: u32,
        /// Matching will be performed case-insensitively.
        ///
        /// The expression may still use PCRE tokens (notably ``(?i)`` and ``(?-i)``) to switch
        /// case-insensitive matching on and off.
        #[prost(bool, tag="3")]
        pub caseless: bool,
        /// Matching a ``.`` will not exclude newlines.
        #[prost(bool, tag="4")]
        pub dot_all: bool,
        /// ``^`` and ``$`` anchors match any newlines in data.
        #[prost(bool, tag="5")]
        pub multiline: bool,
        /// Allow expressions which can match against an empty string.
        ///
        /// This option instructs the compiler to allow expressions that can match against empty buffers,
        /// such as ``.?``, ``.*``, ``(a|)``. Since Hyperscan can return every possible match for an expression,
        /// such expressions generally execute very slowly.
        #[prost(bool, tag="6")]
        pub allow_empty: bool,
        /// Treat the pattern as a sequence of UTF-8 characters.
        #[prost(bool, tag="7")]
        pub utf8: bool,
        /// Use Unicode properties for character classes.
        ///
        /// This option instructs Hyperscan to use Unicode properties, rather than the default ASCII
        /// interpretations, for character mnemonics like ``\w`` and ``\s`` as well as the POSIX character
        /// classes. It is only meaningful in conjunction with ``utf8``.
        #[prost(bool, tag="8")]
        pub ucp: bool,
        /// Logical combination.
        ///
        /// This option instructs Hyperscan to parse this expression as logical combination syntax.
        /// Logical constraints consist of operands, operators and parentheses. The operands are
        /// expression indices, and operators can be ``!``, ``&`` or ``|``.
        #[prost(bool, tag="9")]
        pub combination: bool,
        /// Don’t do any match reporting.
        ///
        /// This option instructs Hyperscan to ignore match reporting for this expression. It is
        /// designed to be used on the sub-expressions in logical combinations.
        #[prost(bool, tag="10")]
        pub quiet: bool,
    }
}
// @@protoc_insertion_point(module)