Skip to main content

AllFilter

Struct AllFilter 

Source
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

Source

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 implementing RecordFilter trait
§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 Debug for AllFilter

Source§

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

Formats the value using the given formatter. Read more
Source§

impl RecordFilter for AllFilter

Source§

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

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§

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> 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, 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.