[][src]Crate rustc_data_structures

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

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

array_vec [
Experimental
]

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

base_n [
Experimental
]
bitvec [
Experimental
]
const_cstr [
Experimental
]
fingerprint [
Experimental
]
flock [
Experimental
]

Simple file-locking apis for each OS.

fx [
Experimental
]
graph [
Experimental
]
indexed_set [
Experimental
]
indexed_vec [
Experimental
]
obligation_forest [
Experimental
]

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 [
Experimental
]

An owning reference.

ptr_key [
Experimental
]
sip128 [
Experimental
]

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

small_c_str [
Experimental
]
small_vec [
Experimental
]

A vector type intended to be used for small vectors.

snapshot_map [
Experimental
]
snapshot_vec [
Experimental
]

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 [
Experimental
]
stable_hasher [
Experimental
]
svh [
Experimental
]

Calculation and management of a Strict Version Hash for crates

sync [
Experimental
]

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

thin_vec [
Experimental
]
tiny_list [
Experimental
]

A singly-linked list.

transitive_relation [
Experimental
]
tuple_slice [
Experimental
]
unify [
Experimental
]

Union-find implementation. The main type is UnificationTable.

vec_linked_list [
Experimental
]
work_queue [
Experimental
]

Macros

const_cstr [
Experimental
]

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:

impl_stable_hash_via_hash [
Experimental
]
newtype_index [
Experimental
]

Creates a struct type S that can be used as an index with IndexVec and so on.

rustc_erase_owner [
Experimental
]

Structs

OnDrop [
Experimental
]

Traits

ToHex [
Experimental
]

A trait for converting a value to hexadecimal encoding

Functions

__noop_fix_for_27438 [
Experimental
]