elasticsearch_dsl/search/queries/params/
percolate_query.rs

1use crate::util::*;
2
3/// Values that can be percolated
4#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
5#[serde(rename_all = "snake_case")]
6pub enum PercolateSource {
7    /// A document
8    Document(serde_json::Value),
9
10    /// A collection of documents
11    Documents(Vec<serde_json::Value>),
12}
13
14impl ShouldSkip for PercolateSource {
15    fn should_skip(&self) -> bool {
16        match self {
17            PercolateSource::Document(document) => !document.is_object(),
18            PercolateSource::Documents(documents) => {
19                documents.is_empty() || documents.iter().any(|document| !document.is_object())
20            }
21        }
22    }
23}