Skip to main content

MsearchBundle

Trait MsearchBundle 

Source
pub trait MsearchBundle {
    type Output;

    const LEN: usize;

    // Required methods
    fn ndjson(&self, prefix: &str) -> Result<String>;
    fn decode(&self, responses: Vec<Value>) -> Result<Self::Output>;
}
Expand description

A bundle of searches runnable in one Client::msearch request — implemented for tuples of &Search<T> up to arity 8, each slot with its own document type. You don’t implement this; you pass tuples.

Required Associated Constants§

Source

const LEN: usize

How many searches the bundle holds.

Required Associated Types§

Source

type Output

One typed SearchResponse per slot, in order.

Required Methods§

Source

fn ndjson(&self, prefix: &str) -> Result<String>

Render the bundle as _msearch NDJSON: a {"index": …} header line and a body line per slot. prefix is prepended to each slot’s index (empty for an unprefixed deployment).

Source

fn decode(&self, responses: Vec<Value>) -> Result<Self::Output>

Decode the envelope’s responses entries, in slot order.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> MsearchBundle for (&Search<T0>, &Search<T1>, &Search<T2>, &Search<T3>, &Search<T4>, &Search<T5>, &Search<T6>, &Search<T7>)

Source§

impl<T0, T1, T2, T3, T4, T5, T6> MsearchBundle for (&Search<T0>, &Search<T1>, &Search<T2>, &Search<T3>, &Search<T4>, &Search<T5>, &Search<T6>)

Source§

impl<T0, T1, T2, T3, T4, T5> MsearchBundle for (&Search<T0>, &Search<T1>, &Search<T2>, &Search<T3>, &Search<T4>, &Search<T5>)

Source§

const LEN: usize = 6

Source§

type Output = (SearchResponse<T0>, SearchResponse<T1>, SearchResponse<T2>, SearchResponse<T3>, SearchResponse<T4>, SearchResponse<T5>)

Source§

fn ndjson(&self, prefix: &str) -> Result<String>

Source§

fn decode(&self, responses: Vec<Value>) -> Result<Self::Output>

Source§

impl<T0, T1, T2, T3, T4> MsearchBundle for (&Search<T0>, &Search<T1>, &Search<T2>, &Search<T3>, &Search<T4>)

Source§

const LEN: usize = 5

Source§

type Output = (SearchResponse<T0>, SearchResponse<T1>, SearchResponse<T2>, SearchResponse<T3>, SearchResponse<T4>)

Source§

fn ndjson(&self, prefix: &str) -> Result<String>

Source§

fn decode(&self, responses: Vec<Value>) -> Result<Self::Output>

Source§

impl<T0, T1, T2, T3> MsearchBundle for (&Search<T0>, &Search<T1>, &Search<T2>, &Search<T3>)

Source§

const LEN: usize = 4

Source§

type Output = (SearchResponse<T0>, SearchResponse<T1>, SearchResponse<T2>, SearchResponse<T3>)

Source§

fn ndjson(&self, prefix: &str) -> Result<String>

Source§

fn decode(&self, responses: Vec<Value>) -> Result<Self::Output>

Source§

impl<T0, T1, T2> MsearchBundle for (&Search<T0>, &Search<T1>, &Search<T2>)

Source§

const LEN: usize = 3

Source§

type Output = (SearchResponse<T0>, SearchResponse<T1>, SearchResponse<T2>)

Source§

fn ndjson(&self, prefix: &str) -> Result<String>

Source§

fn decode(&self, responses: Vec<Value>) -> Result<Self::Output>

Source§

impl<T0, T1> MsearchBundle for (&Search<T0>, &Search<T1>)

Source§

const LEN: usize = 2

Source§

type Output = (SearchResponse<T0>, SearchResponse<T1>)

Source§

fn ndjson(&self, prefix: &str) -> Result<String>

Source§

fn decode(&self, responses: Vec<Value>) -> Result<Self::Output>

Source§

impl<T0> MsearchBundle for (&Search<T0>,)
where T0: DeserializeOwned,

Source§

const LEN: usize = 1

Source§

type Output = (SearchResponse<T0>,)

Source§

fn ndjson(&self, prefix: &str) -> Result<String>

Source§

fn decode(&self, responses: Vec<Value>) -> Result<Self::Output>

Implementors§