Crate rustc_data_structures [] [src]

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

accumulate_vec

A vector type intended to be used for collecting from iterators onto the stack.

array_vec

A stack-allocated vector, allowing storage of N elements on the stack.

base_n
bitslice
bitvec
control_flow_graph
flock

Simple file-locking apis for each OS.

fx
graph

A graph module for use in dataflow, region resolution, and elsewhere.

indexed_set
indexed_vec
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). See README.md for a general overview of how to use this class.

owning_ref

An owning reference.

sip128

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

small_vec

A vector type intended to be used for collecting from iterators onto the stack.

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.

stable_hasher
sync

This mdoule defines types which are thread safe if cfg!(parallel_queries) is true.

transitive_relation
tuple_slice
unify

Union-find implementation. The main type is UnificationTable.

Macros

newtype_index
rustc_access_global
rustc_erase_owner
rustc_global

Traits

ToHex

A trait for converting a value to hexadecimal encoding