pub struct QueryJob<I> {
    pub id: QueryJobId,
    pub span: Span,
    pub parent: Option<QueryJobId>,
    latch: Option<QueryLatch<I>>,
}Expand description
Represents an active query job.
Fields§
§id: QueryJobId§span: SpanThe span corresponding to the reason for which this query was required.
parent: Option<QueryJobId>The parent query job which created this job and is implicitly waiting on it.
latch: Option<QueryLatch<I>>The latch that is used to wait on this job.
Implementations§
Source§impl<I> QueryJob<I>
 
impl<I> QueryJob<I>
Sourcepub fn new(id: QueryJobId, span: Span, parent: Option<QueryJobId>) -> Self
 
pub fn new(id: QueryJobId, span: Span, parent: Option<QueryJobId>) -> Self
Creates a new query job.
pub(super) fn latch(&mut self) -> QueryLatch<I>
Sourcepub fn signal_complete(self)
 
pub fn signal_complete(self)
Signals to waiters that the query is complete.
This does nothing for single threaded rustc, as there are no concurrent jobs which could be waiting on us
Trait Implementations§
Auto Trait Implementations§
impl<I> DynSend for QueryJob<I>where
    I: DynSend,
impl<I> DynSync for QueryJob<I>where
    I: DynSend,
impl<I> Freeze for QueryJob<I>
impl<I> !RefUnwindSafe for QueryJob<I>
impl<I> Send for QueryJob<I>where
    I: Send,
impl<I> Sync for QueryJob<I>where
    I: Send,
impl<I> Unpin for QueryJob<I>
impl<I> !UnwindSafe for QueryJob<I>
Blanket Implementations§
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,
Source§impl<T> Instrument for T
 
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
 
impl<T> Pointable for T
Source§impl<Tcx, T> Value<Tcx> for Twhere
    Tcx: DepContext,
 
impl<Tcx, T> Value<Tcx> for Twhere
    Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed, ) -> T
Source§impl<T> WithSubscriber for T
 
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
 
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
 
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
    T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 32 bytes