Filter

Enum Filter 

Source
#[non_exhaustive]
pub enum Filter { And(SetOf<Filter>), Or(SetOf<Filter>), Not(Box<Filter>), EqualityMatch(AttributeValueAssertion), Substrings(SubstringFilter), GreaterOrEqual(AttributeValueAssertion), LessOrEqual(AttributeValueAssertion), Present(AttributeDescription), ApproxMatch(AttributeValueAssertion), ExtensibleMatch(MatchingRuleAssertion), }
Expand description

Defines the conditions that must be fulfilled in order for the search to match a given entry.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

And(SetOf<Filter>)

All matching rules must evaluate to true.

§

Or(SetOf<Filter>)

Any matching rules must evaluate to true.

§

Not(Box<Filter>)

The matching rule must evaluate to false.

§

EqualityMatch(AttributeValueAssertion)

The filter is true when the EQUALITY rule returns true as applied to the attribute or subtype and the asserted value.

§

Substrings(SubstringFilter)

The filter is true when the SUBSTR rule returns true as applied to the attribute or subtype and the asserted value.

Note that the AssertionValue in a substrings filter item conforms to the assertion syntax of the EQUALITY matching rule for the attribute type rather than to the assertion syntax of the SUBSTR matching rule for the attribute type. Conceptually, the entire SubstringFilter is converted into an assertion value of the substrings matching rule prior to applying the rule.

§

GreaterOrEqual(AttributeValueAssertion)

The filter is true when the “ORDERING” rule returns false as applied to the attribute or subtype and the asserted value.

§

LessOrEqual(AttributeValueAssertion)

The filter is true when either the “ORDERING” or “EQUALITY” rule returns true as applied to the attribute or subtype and the asserted value.

§

Present(AttributeDescription)

The filter is true when there is an attribute or subtype of the specified attribute description present in an entry, false when no attribute or subtype of the specified attribute description is present in an entry, and “Undefined” otherwise.

§

ApproxMatch(AttributeValueAssertion)

The filter is true when there is a value of the attribute type or subtype for which some locally-defined approximate matching algorithm (e.g., spelling variations, phonetic match, etc.) returns true. If a value matches for equality, it also satisfies an approximate match. If approximate matching is not supported for the attribute, this filter item should be treated as an EqualityMatch.

§

ExtensibleMatch(MatchingRuleAssertion)

The filter is evaluated as follows:

Trait Implementations§

Source§

impl AsnType for Filter

Source§

const TAG: Tag = { rasn::types::Tag::EOC }

The associated tag for the type. Read more
Source§

const TAG_TREE: TagTree

The root of this type’s tree of tag’s if it a CHOICE type, otherwise its Leaf that points Self::TAG.
Source§

const IDENTIFIER: Identifier

Identifier of an ASN.1 type as specified in the original specification if not identical with the identifier of Self
Source§

const CONSTRAINTS: Constraints

The set of constraints for values of the given type.
Source§

const IS_CHOICE: bool = true

Whether the type is choice type. PER/OER encoding rules require this knowledge.
Source§

fn is_present(&self) -> bool

Whether the type is present with value. OPTIONAL fields are common in SEQUENCE or SET. Read more
Source§

impl Choice for Filter

Source§

const VARIANTS: &'static [TagTree]

Variants contained in the “root component list”.
Source§

const VARIANCE_CONSTRAINT: Constraints

Constraint for the choice type, based on the number of root components. Used for PER encoding.
Source§

const EXTENDED_VARIANTS: Option<&'static [TagTree]>

Variants contained in the list of extensions.
Source§

const IDENTIFIERS: &'static [&'static str]

Variant identifiers for text-based encoding rules
Source§

impl Clone for Filter

Source§

fn clone(&self) -> Filter

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Filter

Source§

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

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

impl Decode for Filter

Source§

fn decode_with_tag_and_constraints<D: Decoder>( decoder: &mut D, tag: Tag, constraints: Constraints, ) -> Result<Self, D::Error>

Decode this value implicitly tagged with tag from a given ASN.1 decoder with a set of constraints on what values of that type are allowed. Read more
Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, D::Error>

Decode this value from a given ASN.1 decoder. Read more
Source§

fn decode_with_tag<D>( decoder: &mut D, tag: Tag, ) -> Result<Self, <D as Decoder>::Error>
where D: Decoder,

Decode this value implicitly tagged with tag from a given ASN.1 decoder. Read more
Source§

fn decode_with_constraints<D>( decoder: &mut D, constraints: Constraints, ) -> Result<Self, <D as Decoder>::Error>
where D: Decoder,

Decode this value from a given ASN.1 decoder with a set of constraints on what values of that type are allowed. Read more
Source§

impl DecodeChoice for Filter

Source§

fn from_tag<D: Decoder>(decoder: &mut D, tag: Tag) -> Result<Self, D::Error>

Decode the choice value based on the provided tag.
Source§

impl Encode for Filter

Source§

fn encode<'encoder, E: Encoder<'encoder>>( &self, encoder: &mut E, ) -> Result<(), E::Error>

Encodes self’s data into the given crate::Encoder. Read more
Source§

fn encode_with_identifier<'encoder, E: Encoder<'encoder>>( &self, encoder: &mut E, identifier: Identifier, ) -> Result<(), E::Error>

Encode this value with identifier into the given crate::Encoder. Read more
Source§

fn encode_with_tag_and_constraints<'encoder, EN: Encoder<'encoder>>( &self, encoder: &mut EN, tag: Tag, constraints: Constraints, identifier: Identifier, ) -> Result<(), EN::Error>

Encode this value with tag into the given crate::Encoder with the constraints the values this is allowed to encode into. Read more
Source§

fn encode_with_tag<'b, E>( &self, encoder: &mut E, tag: Tag, ) -> Result<(), <E as Encoder<'b>>::Error>
where E: Encoder<'b>,

Encode this value with tag into the given crate::Encoder. Read more
Source§

fn encode_with_tag_and_identifier<'b, E>( &self, encoder: &mut E, tag: Tag, identifier: Identifier, ) -> Result<(), <E as Encoder<'b>>::Error>
where E: Encoder<'b>,

Encode this value with tag and identifier into the given crate::Encoder. Read more
Source§

fn encode_with_constraints<'b, E>( &self, encoder: &mut E, constraints: Constraints, ) -> Result<(), <E as Encoder<'b>>::Error>
where E: Encoder<'b>,

Encode this value into the given crate::Encoder with the constraints the values this is allowed to encode into. Read more
Source§

fn encode_with_constraints_and_identifier<'b, E>( &self, encoder: &mut E, constraints: Constraints, identifier: Identifier, ) -> Result<(), <E as Encoder<'b>>::Error>
where E: Encoder<'b>,

Encode this value into the given crate::Encoder with identifier and the constraints the values this is allowed to encode into. Read more
Source§

impl Hash for Filter

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Filter

Source§

fn eq(&self, other: &Filter) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Filter

Source§

impl StructuralPartialEq for Filter

Auto Trait Implementations§

§

impl !Freeze for Filter

§

impl RefUnwindSafe for Filter

§

impl Send for Filter

§

impl Sync for Filter

§

impl Unpin for Filter

§

impl UnwindSafe for Filter

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
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.