pub enum FilterPredicate {
KeyEquals(String),
ValueContains(String),
TopicIs(String),
TimestampAfter(u64),
TimestampBefore(u64),
HeaderMatches(String, String),
And(Box<FilterPredicate>, Box<FilterPredicate>),
Or(Box<FilterPredicate>, Box<FilterPredicate>),
Not(Box<FilterPredicate>),
}Expand description
A composable filter predicate for StreamEvent matching.
Variants§
KeyEquals(String)
Key must equal this exact string.
ValueContains(String)
Value must contain this substring.
TopicIs(String)
Topic must match exactly.
TimestampAfter(u64)
Timestamp must be greater than or equal to this value (inclusive lower bound).
TimestampBefore(u64)
Timestamp must be less than or equal to this value (inclusive upper bound).
HeaderMatches(String, String)
A header with the given key must have the given value.
And(Box<FilterPredicate>, Box<FilterPredicate>)
Logical AND: both sub-predicates must match.
Or(Box<FilterPredicate>, Box<FilterPredicate>)
Logical OR: at least one sub-predicate must match.
Not(Box<FilterPredicate>)
Logical NOT: the sub-predicate must not match.
Implementations§
Source§impl FilterPredicate
impl FilterPredicate
Sourcepub fn matches(&self, event: &StreamEvent) -> bool
pub fn matches(&self, event: &StreamEvent) -> bool
Evaluate this predicate against a single StreamEvent.
Sourcepub fn and(self, other: FilterPredicate) -> FilterPredicate
pub fn and(self, other: FilterPredicate) -> FilterPredicate
Combine this predicate with another using logical AND.
Sourcepub fn or(self, other: FilterPredicate) -> FilterPredicate
pub fn or(self, other: FilterPredicate) -> FilterPredicate
Combine this predicate with another using logical OR.
Trait Implementations§
Source§impl Clone for FilterPredicate
impl Clone for FilterPredicate
Source§fn clone(&self) -> FilterPredicate
fn clone(&self) -> FilterPredicate
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FilterPredicate
impl Debug for FilterPredicate
Source§impl Not for FilterPredicate
impl Not for FilterPredicate
Source§fn not(self) -> FilterPredicate
fn not(self) -> FilterPredicate
Negate this predicate.
Source§type Output = FilterPredicate
type Output = FilterPredicate
The resulting type after applying the
! operator.Auto Trait Implementations§
impl Freeze for FilterPredicate
impl RefUnwindSafe for FilterPredicate
impl Send for FilterPredicate
impl Sync for FilterPredicate
impl Unpin for FilterPredicate
impl UnsafeUnpin for FilterPredicate
impl UnwindSafe for FilterPredicate
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.