[][src]Crate rustc_data_structures

Various data structures used by the Rust compiler. The intention is that code in here should be not be specific to rustc, so that it can be easily unit tested and so forth.

Note

This API is completely unstable and subject to change.

Modules

atomic_ref
base_n
binary_search_util
box_region

This module provides a way to deal with self-referential data.

captures
const_cstr
fingerprint
flock

Simple file-locking apis for each OS.

frozen

An immutable, owned value (except for interior mutability).

fx
graph
jobserver
macros
map_in_place
obligation_forest

The ObligationForest is a utility data structure used in trait matching to track the set of outstanding obligations (those not yet resolved to success or error). It also tracks the "backtrace" of each pending obligation (why we are trying to figure this out in the first place).

owning_ref

An owning reference.

profiling

Rust Compiler Self-Profiling

ptr_key
sharded
sip128

This is a copy of core::hash::sip adapted to providing 128 bit hashes.

small_c_str
snapshot_map
snapshot_vec

A utility class for implementing "snapshottable" things; a snapshottable data structure permits you to take a snapshot (via start_snapshot) and then, after making some changes, elect either to rollback to the start of the snapshot or commit those changes.

sorted_map
stable_hasher
stable_map
stable_set
stack
svh

Calculation and management of a Strict Version Hash for crates

sync

This module defines types which are thread safe if cfg!(parallel_compiler) is true.

thin_vec
tiny_list

A singly-linked list.

transitive_relation
undo_log

Module which contains the snapshot/rollback functionality of the ena data structures.

unify

Union-find implementation. The main type is UnificationTable.

vec_linked_list
work_queue

Macros

box_region_allow_access
const_cstr

This macro creates a zero-overhead &CStr by adding a NUL terminator to the string literal passed into it at compile-time. Use it like:

declare_box_region_type
define_id_collections
enum_from_u32
impl_stable_hash_via_hash
likely
parallel
rustc_erase_owner
static_assert

A simple static assertion macro.

static_assert_size

Type size assertion. The first argument is a type and the second argument is its expected size.

unlikely

Structs

AtomicRef

This is essentially an AtomicPtr but is guaranteed to always be valid

OnDrop

Functions

cold_path