pub(crate) enum TaskReads {
Small {
len: u8,
buf: [DepNodeIndex; 16],
},
Recorded(ReadsRecorder),
}Expand description
The reads recorded by one task so far, deduplicated and in first-read order.
Variants§
Small
The first few reads, deduplicated by a linear scan. Most tasks never outgrow this.
Recorded(ReadsRecorder)
The reads of a task that outgrew the inline buffer.
Implementations§
Source§impl TaskReads
impl TaskReads
pub(crate) fn new() -> Self
Sourcepub(crate) fn insert(
&mut self,
index: DepNodeIndex,
pool: &Lock<Vec<ReadsRecorder>>,
) -> bool
pub(crate) fn insert( &mut self, index: DepNodeIndex, pool: &Lock<Vec<ReadsRecorder>>, ) -> bool
Records a read and returns whether it was new for the task. The pool provides a recorder when the task outgrows the inline buffer.
Sourcepub(crate) fn edges(&self) -> &[DepNodeIndex]
pub(crate) fn edges(&self) -> &[DepNodeIndex]
The task’s deduplicated reads, in first-read order.
Trait Implementations§
Auto Trait Implementations§
impl DynSend for TaskReads
impl DynSync for TaskReads
impl Freeze for TaskReads
impl RefUnwindSafe for TaskReads
impl Send for TaskReads
impl Sync for TaskReads
impl Unpin for TaskReads
impl UnsafeUnpin for TaskReads
impl UnwindSafe for TaskReads
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, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
impl<T> ErasedDestructor for Twhere
T: 'static,
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<K> IntoQueryKey<K> for K
impl<K> IntoQueryKey<K> for K
Source§fn into_query_key(self) -> K
fn into_query_key(self) -> K
Argument conversion from
Self to K.
This should always be a very cheap conversion, e.g. LocalDefId::to_def_id.Source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
Source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> 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>
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: 72 bytes
Size for each variant:
Small: 67 bytesRecorded: 63 bytes