pub struct AllFilter { /* private fields */ }Expand description
Implementation of RecordFilter that combines multiple filters with AND logic.
This implementation of the RecordFilter trait accepts a vector of boxed filters during construction.
Its check method returns true only if all underlying filters return true for the given record.
If the filter list is empty, it returns true by default (empty conjunction is vacuously true).
This filter is useful for combining multiple filtering conditions where all must be satisfied.
§Examples
use logged_stream::{AllFilter, RecordKindFilter, RecordFilter, Record, RecordKind};
// Create a filter that accepts only Read operations
let filter = AllFilter::new(vec![
Box::new(RecordKindFilter::new(&[RecordKind::Read])),
]);
let read_record = Record::new(RecordKind::Read, String::from("data"));
assert!(filter.check(&read_record));
let error_record = Record::new(RecordKind::Error, String::from("error"));
assert!(!filter.check(&error_record));Implementations§
Source§impl AllFilter
impl AllFilter
Sourcepub fn new(filters: Vec<Box<dyn RecordFilter>>) -> Self
pub fn new(filters: Vec<Box<dyn RecordFilter>>) -> Self
Construct a new instance of AllFilter using provided vector of boxed filters.
§Arguments
filters- A vector of boxed filters implementingRecordFiltertrait
§Examples
use logged_stream::{AllFilter, RecordKindFilter, RecordKind};
let filter = AllFilter::new(vec![
Box::new(RecordKindFilter::new(&[RecordKind::Read])),
Box::new(RecordKindFilter::new(&[RecordKind::Read, RecordKind::Write])),
]);Trait Implementations§
Source§impl RecordFilter for AllFilter
impl RecordFilter for AllFilter
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 AllFilter
impl !RefUnwindSafe for AllFilter
impl Send for AllFilter
impl !Sync for AllFilter
impl Unpin for AllFilter
impl UnsafeUnpin for AllFilter
impl !UnwindSafe for AllFilter
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