pub trait QueryConfig<Qcx: QueryContext> {
    type Key: Eq + Hash + Clone + Debug;
    type Value: Debug;
    type Stored: Debug + Clone + Borrow<Self::Value>;
    type Cache: QueryCache<Key = Self::Key, Stored = Self::Stored, Value = Self::Value>;

    const NAME: &'static str;

    fn query_state<'a>(tcx: Qcx) -> &'a QueryState<Self::Key>
    where
        Qcx: 'a
; fn query_cache<'a>(tcx: Qcx) -> &'a Self::Cache
    where
        Qcx: 'a
; fn make_vtable(
        tcx: Qcx,
        key: &Self::Key
    ) -> QueryVTable<Qcx, Self::Key, Self::Value>; fn cache_on_disk(tcx: Qcx::DepContext, key: &Self::Key) -> bool; fn execute_query(tcx: Qcx::DepContext, k: Self::Key) -> Self::Stored; }

Required Associated Types§

Required Associated Constants§

Required Methods§

Implementors§