#[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
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
impl AsnType for Filter
Source§const TAG_TREE: TagTree
const TAG_TREE: TagTree
Leaf that points Self::TAG.Source§const IDENTIFIER: Identifier
const IDENTIFIER: Identifier
SelfSource§const CONSTRAINTS: Constraints
const CONSTRAINTS: Constraints
Source§const IS_CHOICE: bool = true
const IS_CHOICE: bool = true
Source§fn is_present(&self) -> bool
fn is_present(&self) -> bool
Source§impl Choice for Filter
impl Choice for Filter
Source§const VARIANCE_CONSTRAINT: Constraints
const VARIANCE_CONSTRAINT: Constraints
Source§const EXTENDED_VARIANTS: Option<&'static [TagTree]>
const EXTENDED_VARIANTS: Option<&'static [TagTree]>
Source§const IDENTIFIERS: &'static [&'static str]
const IDENTIFIERS: &'static [&'static str]
Source§impl Decode for Filter
impl Decode for Filter
Source§fn decode_with_tag_and_constraints<D: Decoder>(
decoder: &mut D,
tag: Tag,
constraints: Constraints,
) -> Result<Self, D::Error>
fn decode_with_tag_and_constraints<D: Decoder>( decoder: &mut D, tag: Tag, constraints: Constraints, ) -> Result<Self, D::Error>
tag from a given ASN.1
decoder with a set of constraints on what values of that type are allowed. Read moreSource§fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, D::Error>
fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, D::Error>
Source§fn decode_with_tag<D>(
decoder: &mut D,
tag: Tag,
) -> Result<Self, <D as Decoder>::Error>where
D: Decoder,
fn decode_with_tag<D>(
decoder: &mut D,
tag: Tag,
) -> Result<Self, <D as Decoder>::Error>where
D: Decoder,
tag from a given ASN.1 decoder. Read moreSource§fn decode_with_constraints<D>(
decoder: &mut D,
constraints: Constraints,
) -> Result<Self, <D as Decoder>::Error>where
D: Decoder,
fn decode_with_constraints<D>(
decoder: &mut D,
constraints: Constraints,
) -> Result<Self, <D as Decoder>::Error>where
D: Decoder,
Source§impl DecodeChoice for Filter
impl DecodeChoice for Filter
Source§impl Encode for Filter
impl Encode for Filter
Source§fn encode_with_identifier<'encoder, E: Encoder<'encoder>>(
&self,
encoder: &mut E,
identifier: Identifier,
) -> Result<(), E::Error>
fn encode_with_identifier<'encoder, E: Encoder<'encoder>>( &self, encoder: &mut E, identifier: Identifier, ) -> Result<(), E::Error>
Source§fn encode_with_tag_and_constraints<'encoder, EN: Encoder<'encoder>>(
&self,
encoder: &mut EN,
tag: Tag,
constraints: Constraints,
identifier: Identifier,
) -> Result<(), EN::Error>
fn encode_with_tag_and_constraints<'encoder, EN: Encoder<'encoder>>( &self, encoder: &mut EN, tag: Tag, constraints: Constraints, identifier: Identifier, ) -> Result<(), EN::Error>
tag into the given crate::Encoder with the
constraints the values this is allowed to encode into. Read moreSource§fn encode_with_tag<'b, E>(
&self,
encoder: &mut E,
tag: Tag,
) -> Result<(), <E as Encoder<'b>>::Error>where
E: Encoder<'b>,
fn encode_with_tag<'b, E>(
&self,
encoder: &mut E,
tag: Tag,
) -> Result<(), <E as Encoder<'b>>::Error>where
E: Encoder<'b>,
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>,
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>,
Source§fn encode_with_constraints<'b, E>(
&self,
encoder: &mut E,
constraints: Constraints,
) -> Result<(), <E as Encoder<'b>>::Error>where
E: Encoder<'b>,
fn encode_with_constraints<'b, E>(
&self,
encoder: &mut E,
constraints: Constraints,
) -> Result<(), <E as Encoder<'b>>::Error>where
E: Encoder<'b>,
crate::Encoder with the
constraints the values this is allowed to encode into. Read moreSource§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>,
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>,
crate::Encoder with identifier and the
constraints the values this is allowed to encode into. Read moreimpl Eq for Filter
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> 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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
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
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
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
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.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
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.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
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.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
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.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
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.