struct GlobalFileTable {
raw_file_table: FxIndexMap<StableSourceFileId, String>,
filenames_buffer: Vec<u8>,
filenames_hash: u64,
}
Expand description
Maps “global” (per-CGU) file ID numbers to their underlying source file paths.
Fields§
§raw_file_table: FxIndexMap<StableSourceFileId, String>
This “raw” table doesn’t include the working dir, so a file’s global ID is its index in this set plus one.
filenames_buffer: Vec<u8>
The file table in encoded form (possibly compressed), which can be
included directly in this CGU’s __llvm_covmap
record.
filenames_hash: u64
Truncated hash of the bytes in filenames_buffer
.
The llvm-cov
tool uses this hash to associate each covfun record with
its corresponding filenames table, since the final binary will typically
contain multiple covmap records from different compilation units.
Implementations§
Source§impl GlobalFileTable
impl GlobalFileTable
Sourcefn build<'a>(
tcx: TyCtxt<'_>,
all_files: impl Iterator<Item = &'a SourceFile>,
) -> Self
fn build<'a>( tcx: TyCtxt<'_>, all_files: impl Iterator<Item = &'a SourceFile>, ) -> Self
Builds a “global file table” for this CGU, mapping numeric IDs to path strings.
fn get_existing_id(&self, file: &SourceFile) -> Option<GlobalFileId>
Trait Implementations§
Auto Trait Implementations§
impl DynSend for GlobalFileTable
impl DynSync for GlobalFileTable
impl Freeze for GlobalFileTable
impl RefUnwindSafe for GlobalFileTable
impl Send for GlobalFileTable
impl Sync for GlobalFileTable
impl Unpin for GlobalFileTable
impl UnwindSafe for GlobalFileTable
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
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
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>
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>
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<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
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<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,
impl<T> MaybeSendSync for T
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: 88 bytes