Skip to main content

CompiledMatcher

Enum CompiledMatcher 

Source
pub enum CompiledMatcher {
Show 20 variants Exact { value: String, case_insensitive: bool, }, Contains { value: String, case_insensitive: bool, }, StartsWith { value: String, case_insensitive: bool, }, EndsWith { value: String, case_insensitive: bool, }, Regex(Regex), Cidr(IpNet), NumericEq(f64), NumericGt(f64), NumericGte(f64), NumericLt(f64), NumericLte(f64), Exists(bool), FieldRef { field: String, case_insensitive: bool, }, Null, BoolEq(bool), Expand { template: Vec<ExpandPart>, case_insensitive: bool, }, TimestampPart { part: TimePart, inner: Box<CompiledMatcher>, }, Not(Box<CompiledMatcher>), AnyOf(Vec<CompiledMatcher>), AllOf(Vec<CompiledMatcher>),
}
Expand description

A pre-compiled matcher for a single value comparison.

All string matchers store their values in the form needed for comparison (Unicode-lowercased for case-insensitive). The case_insensitive flag controls whether the input is lowercased before comparison.

Variants§

§

Exact

Exact string equality.

Fields

§value: String
§case_insensitive: bool
§

Contains

Substring containment.

Fields

§value: String
§case_insensitive: bool
§

StartsWith

String starts with prefix.

Fields

§value: String
§case_insensitive: bool
§

EndsWith

String ends with suffix.

Fields

§value: String
§case_insensitive: bool
§

Regex(Regex)

Compiled regex pattern (flags baked in at compile time).

§

Cidr(IpNet)

CIDR network match for IP addresses.

§

NumericEq(f64)

Numeric equality.

§

NumericGt(f64)

Numeric greater-than.

§

NumericGte(f64)

Numeric greater-than-or-equal.

§

NumericLt(f64)

Numeric less-than.

§

NumericLte(f64)

Numeric less-than-or-equal.

§

Exists(bool)

Field existence check. true = field must exist, false = must not exist.

§

FieldRef

Compare against another field’s value.

Fields

§field: String
§case_insensitive: bool
§

Null

Match null / missing values.

§

BoolEq(bool)

Boolean equality.

§

Expand

Placeholder expansion: %fieldname% is resolved from the event at match time.

Fields

§template: Vec<ExpandPart>
§case_insensitive: bool
§

TimestampPart

Extract a time component from a timestamp field value and match it.

Fields

§

Not(Box<CompiledMatcher>)

Negated matcher: matches if the inner matcher does NOT match.

§

AnyOf(Vec<CompiledMatcher>)

Match if ANY child matches (OR).

§

AllOf(Vec<CompiledMatcher>)

Match if ALL children match (AND).

Implementations§

Source§

impl CompiledMatcher

Source

pub fn matches(&self, value: &Value, event: &Event<'_>) -> bool

Check if this matcher matches a JSON value from an event.

The event parameter is needed for FieldRef to access other fields. The field_name is the name of the field being matched (for FieldRef comparison).

Source

pub fn matches_keyword(&self, event: &Event<'_>) -> bool

Check if this matcher matches any string value in the event. Used for keyword detection (field-less matching).

Avoids allocating a Vec of all strings and a String per value by using matches_str with a short-circuiting traversal.

Trait Implementations§

Source§

impl Clone for CompiledMatcher

Source§

fn clone(&self) -> CompiledMatcher

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CompiledMatcher

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.