Module std::collections::hash_map::raw_table [] [src]

Reexports

use core::prelude::v1::*;
use alloc::heap::{allocate, deallocate, EMPTY};
use cmp;
use hash::{Hash, Hasher};
use marker;
use mem::{align_of, size_of};
use mem;
use num::wrapping::OverflowingOps;
use ops::{Deref, DerefMut};
use ptr::{self, Unique};
use super::super::hash_state::HashState;
use self::BucketState::*;

Structs

Bucket
Drain

Iterator over the entries in a table, clearing the table.

EmptyBucket
FullBucket
GapThenFull
IntoIter

Iterator over the entries in a table, consuming the table.

Iter

Iterator over shared references to entries in a table.

IterMut

Iterator over mutable references to entries in a table.

RawBucket
RawBuckets

A raw iterator. The basis for some other iterators in this module. Although this interface is safe, it's not used outside this module.

RawTable

The raw hashtable, providing safe-ish access to the unzipped and highly optimized arrays of hashes, keys, and values.

RevMoveBuckets

An iterator that moves out buckets in reverse order. It leaves the table in an inconsistent state and should only be used for dropping the table's remaining entries. It's used in the implementation of Drop.

SafeHash

A hash that is not zero, since we use a hash of zero to represent empty buckets.

Enums

BucketState

Constants

EMPTY_BUCKET

Functions

calculate_allocation
calculate_offsets
make_hash

We need to remove hashes of 0. That's reserved for empty buckets. This function wraps up hash_keyed to be the only way outside this module to generate a SafeHash.

round_up_to_next

Rounds up to a multiple of a power of two. Returns the closest multiple of target_alignment that is higher or equal to unrounded.

Type Definitions

EmptyBucketImm
EmptyBucketMut
FullBucketImm
FullBucketMut