pub struct AnyFilter { /* private fields */ }Expand description
Implementation of RecordFilter that combines multiple filters with OR logic.
This implementation of the RecordFilter trait accepts a vector of boxed filters during construction.
Its check method returns true if any of the underlying filters returns true for the given record.
If the filter list is empty, it returns false by default (empty disjunction is false).
This filter is useful for combining multiple filtering conditions where at least one must be satisfied.
§Examples
use logged_stream::{AnyFilter, RecordKindFilter, RecordFilter, Record, RecordKind};
// Create a filter that accepts Read OR Write operations
let filter = AnyFilter::new(vec![
Box::new(RecordKindFilter::new(&[RecordKind::Read])),
Box::new(RecordKindFilter::new(&[RecordKind::Write])),
]);
let read_record = Record::new(RecordKind::Read, String::from("data"));
assert!(filter.check(&read_record));
let write_record = Record::new(RecordKind::Write, String::from("data"));
assert!(filter.check(&write_record));
let error_record = Record::new(RecordKind::Error, String::from("error"));
assert!(!filter.check(&error_record));Implementations§
Source§impl AnyFilter
impl AnyFilter
Sourcepub fn new(filters: Vec<Box<dyn RecordFilter>>) -> Self
pub fn new(filters: Vec<Box<dyn RecordFilter>>) -> Self
Construct a new instance of AnyFilter using provided vector of boxed filters.
§Arguments
filters- A vector of boxed filters implementingRecordFiltertrait
§Examples
use logged_stream::{AnyFilter, RecordKindFilter, RecordKind};
let filter = AnyFilter::new(vec![
Box::new(RecordKindFilter::new(&[RecordKind::Read])),
Box::new(RecordKindFilter::new(&[RecordKind::Write])),
]);Trait Implementations§
Source§impl RecordFilter for AnyFilter
impl RecordFilter for AnyFilter
Source§fn check(&self, record: &Record) -> bool
fn check(&self, record: &Record) -> bool
This method returns
bool value depending on if received log record (Record) should be processed
by logging part inside LoggedStream.Source§fn fmt_debug(&self, f: &mut Formatter<'_>) -> Result
fn fmt_debug(&self, f: &mut Formatter<'_>) -> Result
This method provides
fmt::Debug representation of the filter. It is used by composite filters
(AllFilter and AnyFilter) to produce detailed debug output of their underlying filters.
The default implementation outputs the type name as "UnknownFilter".
Implementors are encouraged to override this method to provide meaningful debug information.Auto Trait Implementations§
impl Freeze for AnyFilter
impl !RefUnwindSafe for AnyFilter
impl Send for AnyFilter
impl !Sync for AnyFilter
impl Unpin for AnyFilter
impl UnsafeUnpin for AnyFilter
impl !UnwindSafe for AnyFilter
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