Trait Query

Source
pub trait Query: Copy {
    // Required methods
    fn setup(&self, context: &Context);
    fn get_query(&self) -> Vec<(TypeId, IndexValue)>;
}
Expand description

Encapsulates a person query.

Context::query_people actually takes an instance of Query, but because we implement Query for tuples of up to size 20, that’s invisible to the caller. Do not use this trait directly.

Required Methods§

Source

fn setup(&self, context: &Context)

Source

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Query for ()

Source§

fn setup(&self, _: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty> Query for ((T0, T0::Value),)

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty, T7: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value), (T7, T7::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty, T7: PersonProperty, T8: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value), (T7, T7::Value), (T8, T8::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty, T7: PersonProperty, T8: PersonProperty, T9: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value), (T7, T7::Value), (T8, T8::Value), (T9, T9::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty, T7: PersonProperty, T8: PersonProperty, T9: PersonProperty, T10: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value), (T7, T7::Value), (T8, T8::Value), (T9, T9::Value), (T10, T10::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty, T7: PersonProperty, T8: PersonProperty, T9: PersonProperty, T10: PersonProperty, T11: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value), (T7, T7::Value), (T8, T8::Value), (T9, T9::Value), (T10, T10::Value), (T11, T11::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty, T7: PersonProperty, T8: PersonProperty, T9: PersonProperty, T10: PersonProperty, T11: PersonProperty, T12: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value), (T7, T7::Value), (T8, T8::Value), (T9, T9::Value), (T10, T10::Value), (T11, T11::Value), (T12, T12::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty, T7: PersonProperty, T8: PersonProperty, T9: PersonProperty, T10: PersonProperty, T11: PersonProperty, T12: PersonProperty, T13: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value), (T7, T7::Value), (T8, T8::Value), (T9, T9::Value), (T10, T10::Value), (T11, T11::Value), (T12, T12::Value), (T13, T13::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty, T7: PersonProperty, T8: PersonProperty, T9: PersonProperty, T10: PersonProperty, T11: PersonProperty, T12: PersonProperty, T13: PersonProperty, T14: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value), (T7, T7::Value), (T8, T8::Value), (T9, T9::Value), (T10, T10::Value), (T11, T11::Value), (T12, T12::Value), (T13, T13::Value), (T14, T14::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty, T7: PersonProperty, T8: PersonProperty, T9: PersonProperty, T10: PersonProperty, T11: PersonProperty, T12: PersonProperty, T13: PersonProperty, T14: PersonProperty, T15: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value), (T7, T7::Value), (T8, T8::Value), (T9, T9::Value), (T10, T10::Value), (T11, T11::Value), (T12, T12::Value), (T13, T13::Value), (T14, T14::Value), (T15, T15::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty, T7: PersonProperty, T8: PersonProperty, T9: PersonProperty, T10: PersonProperty, T11: PersonProperty, T12: PersonProperty, T13: PersonProperty, T14: PersonProperty, T15: PersonProperty, T16: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value), (T7, T7::Value), (T8, T8::Value), (T9, T9::Value), (T10, T10::Value), (T11, T11::Value), (T12, T12::Value), (T13, T13::Value), (T14, T14::Value), (T15, T15::Value), (T16, T16::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty, T7: PersonProperty, T8: PersonProperty, T9: PersonProperty, T10: PersonProperty, T11: PersonProperty, T12: PersonProperty, T13: PersonProperty, T14: PersonProperty, T15: PersonProperty, T16: PersonProperty, T17: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value), (T7, T7::Value), (T8, T8::Value), (T9, T9::Value), (T10, T10::Value), (T11, T11::Value), (T12, T12::Value), (T13, T13::Value), (T14, T14::Value), (T15, T15::Value), (T16, T16::Value), (T17, T17::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T0: PersonProperty, T1: PersonProperty, T2: PersonProperty, T3: PersonProperty, T4: PersonProperty, T5: PersonProperty, T6: PersonProperty, T7: PersonProperty, T8: PersonProperty, T9: PersonProperty, T10: PersonProperty, T11: PersonProperty, T12: PersonProperty, T13: PersonProperty, T14: PersonProperty, T15: PersonProperty, T16: PersonProperty, T17: PersonProperty, T18: PersonProperty> Query for ((T0, T0::Value), (T1, T1::Value), (T2, T2::Value), (T3, T3::Value), (T4, T4::Value), (T5, T5::Value), (T6, T6::Value), (T7, T7::Value), (T8, T8::Value), (T9, T9::Value), (T10, T10::Value), (T11, T11::Value), (T12, T12::Value), (T13, T13::Value), (T14, T14::Value), (T15, T15::Value), (T16, T16::Value), (T17, T17::Value), (T18, T18::Value))

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Source§

impl<T1: PersonProperty> Query for (T1, T1::Value)

Source§

fn setup(&self, context: &Context)

Source§

fn get_query(&self) -> Vec<(TypeId, IndexValue)>

Implementors§

Source§

impl<Q1, Q2> Query for QueryAnd<Q1, Q2>
where Q1: Query, Q2: Query,