Skip to main content

AnyFilter

Struct AnyFilter 

Source
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

Source

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

Source§

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

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

impl RecordFilter for AnyFilter

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.