pub enum Predicate {
KeyMatch {
field: String,
},
FieldEqual {
field: String,
},
Overlap {
field: String,
min: f64,
},
All(Vec<Predicate>),
NumericWithin {
field: String,
tolerance: f64,
},
GeoRadius {
field: String,
km: f64,
},
VectorSimilar {
field: String,
min: f64,
},
Any(Vec<Predicate>),
}Expand description
Score-combination conventions for composed predicates:
-
All(parts)— minimum of the individual branch scores. Every branch must match; the weakest link controls the edge weight. Verified by testall_takes_min_score_and_requires_every_part. -
Any(parts)— maximum of the satisfied branches’ scores. At least one branch must match; the strongest match controls the edge weight. Verified by testany_score_is_max_when_both_branches_match.
These conventions are opposites: All is pessimistic (min), Any is
optimistic (max). Nesting is allowed up to depth
MAX_PREDICATE_NESTING_DEPTH; validate() returns a named error beyond
that.
Variants§
KeyMatch
FieldEqual
Overlap
All(Vec<Predicate>)
NumericWithin
GeoRadius
VectorSimilar
Any(Vec<Predicate>)
OR composition: matches when at least one branch matches.
Score = max over satisfied branches (see doc comment on Predicate).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Predicate
impl<'de> Deserialize<'de> for Predicate
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Predicate, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Predicate, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<&Predicate> for PredicateSummary
impl From<&Predicate> for PredicateSummary
Source§impl Serialize for Predicate
impl Serialize for Predicate
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for Predicate
Auto Trait Implementations§
impl Freeze for Predicate
impl RefUnwindSafe for Predicate
impl Send for Predicate
impl Sync for Predicate
impl Unpin for Predicate
impl UnsafeUnpin for Predicate
impl UnwindSafe for Predicate
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.