Crate rustc_data_structures[][src]

🔬 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.

Re-exports

extern crate std;
extern crate core;
extern crate ena;
extern crate log;
extern crate serialize as rustc_serialize;
extern crate libc;
extern crate parking_lot;
extern crate cfg_if;
extern crate stable_deref_trait;
extern crate rustc_rayon as rayon;
extern crate rustc_rayon_core as rayon_core;
extern crate rustc_hash;
extern crate rustc_cratesio_shim;
use std::prelude::v1::*;

Modules

accumulate_vec [
Experimental
]

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

array_vec [
Experimental
]

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

base_n [
Experimental
]
bitslice [
Experimental
]
bitvec [
Experimental
]
control_flow_graph [
Experimental
]
flock [
Experimental
]

Simple file-locking apis for each OS.

fx [
Experimental
]
graph [
Experimental
]

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

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.

sip128 [
Experimental
]

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

small_vec [
Experimental
]

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

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

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

tiny_list [
Experimental
]

A singly-linked list.

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

Union-find implementation. The main type is UnificationTable.

Macros

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