Rollup merge of #36298 - GuillaumeGomez:hashmap_doc, r=steveklabnik
Add missing urls r? @steveklabnik
This commit is contained in:
commit
20cce247e1
|
@ -206,7 +206,7 @@ fn test_resize_policy() {
|
|||
/// require this behavior you can create your own hashing function using
|
||||
/// [BuildHasherDefault](../hash/struct.BuildHasherDefault.html).
|
||||
///
|
||||
/// It is required that the keys implement the `Eq` and `Hash` traits, although
|
||||
/// It is required that the keys implement the [`Eq`] and [`Hash`] traits, although
|
||||
/// this can frequently be achieved by using `#[derive(PartialEq, Eq, Hash)]`.
|
||||
/// If you implement these yourself, it is important that the following
|
||||
/// property holds:
|
||||
|
@ -218,9 +218,9 @@ fn test_resize_policy() {
|
|||
/// In other words, if two keys are equal, their hashes must be equal.
|
||||
///
|
||||
/// It is a logic error for a key to be modified in such a way that the key's
|
||||
/// hash, as determined by the `Hash` trait, or its equality, as determined by
|
||||
/// the `Eq` trait, changes while it is in the map. This is normally only
|
||||
/// possible through `Cell`, `RefCell`, global state, I/O, or unsafe code.
|
||||
/// hash, as determined by the [`Hash`] trait, or its equality, as determined by
|
||||
/// the [`Eq`] trait, changes while it is in the map. This is normally only
|
||||
/// possible through [`Cell`], [`RefCell`], global state, I/O, or unsafe code.
|
||||
///
|
||||
/// Relevant papers/articles:
|
||||
///
|
||||
|
@ -298,8 +298,14 @@ fn test_resize_policy() {
|
|||
/// *stat += random_stat_buff();
|
||||
/// ```
|
||||
///
|
||||
/// The easiest way to use `HashMap` with a custom type as key is to derive `Eq` and `Hash`.
|
||||
/// We must also derive `PartialEq`.
|
||||
/// The easiest way to use `HashMap` with a custom type as key is to derive [`Eq`] and [`Hash`].
|
||||
/// We must also derive [`PartialEq`].
|
||||
///
|
||||
/// [`Eq`]: ../../std/cmp/trait.Eq.html
|
||||
/// [`Hash`]: ../../std/hash/trait.Hash.html
|
||||
/// [`PartialEq`]: ../../std/cmp/trait.PartialEq.html
|
||||
/// [`RefCell`]: ../../std/cell/struct.RefCell.html
|
||||
/// [`Cell`]: ../../std/cell/struct.Cell.html
|
||||
///
|
||||
/// ```
|
||||
/// use std::collections::HashMap;
|
||||
|
@ -525,7 +531,7 @@ impl<K, V, S> HashMap<K, V, S>
|
|||
}
|
||||
|
||||
impl<K: Hash + Eq, V> HashMap<K, V, RandomState> {
|
||||
/// Creates an empty HashMap.
|
||||
/// Creates an empty `HashMap`.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
|
@ -539,7 +545,7 @@ impl<K: Hash + Eq, V> HashMap<K, V, RandomState> {
|
|||
Default::default()
|
||||
}
|
||||
|
||||
/// Creates an empty hash map with the given initial capacity.
|
||||
/// Creates an empty `HashMap` with the given initial capacity.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
|
@ -557,7 +563,7 @@ impl<K: Hash + Eq, V> HashMap<K, V, RandomState> {
|
|||
impl<K, V, S> HashMap<K, V, S>
|
||||
where K: Eq + Hash, S: BuildHasher
|
||||
{
|
||||
/// Creates an empty hashmap which will use the given hash builder to hash
|
||||
/// Creates an empty `HashMap` which will use the given hash builder to hash
|
||||
/// keys.
|
||||
///
|
||||
/// The created map has the default initial capacity.
|
||||
|
@ -587,7 +593,7 @@ impl<K, V, S> HashMap<K, V, S>
|
|||
}
|
||||
}
|
||||
|
||||
/// Creates an empty HashMap with space for at least `capacity`
|
||||
/// Creates an empty `HashMap` with space for at least `capacity`
|
||||
/// elements, using `hasher` to hash the keys.
|
||||
///
|
||||
/// Warning: `hasher` is normally randomly generated, and
|
||||
|
@ -677,7 +683,7 @@ impl<K, V, S> HashMap<K, V, S>
|
|||
/// Resizes the internal vectors to a new capacity. It's your responsibility to:
|
||||
/// 1) Make sure the new capacity is enough for all the elements, accounting
|
||||
/// for the load factor.
|
||||
/// 2) Ensure new_capacity is a power of two or zero.
|
||||
/// 2) Ensure `new_capacity` is a power of two or zero.
|
||||
fn resize(&mut self, new_capacity: usize) {
|
||||
assert!(self.table.size() <= new_capacity);
|
||||
assert!(new_capacity.is_power_of_two() || new_capacity == 0);
|
||||
|
@ -1040,9 +1046,12 @@ impl<K, V, S> HashMap<K, V, S>
|
|||
/// Returns a reference to the value corresponding to the key.
|
||||
///
|
||||
/// The key may be any borrowed form of the map's key type, but
|
||||
/// `Hash` and `Eq` on the borrowed form *must* match those for
|
||||
/// [`Hash`] and [`Eq`] on the borrowed form *must* match those for
|
||||
/// the key type.
|
||||
///
|
||||
/// [`Eq`]: ../../std/cmp/trait.Eq.html
|
||||
/// [`Hash`]: ../../std/hash/trait.Hash.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
|
@ -1063,9 +1072,12 @@ impl<K, V, S> HashMap<K, V, S>
|
|||
/// Returns true if the map contains a value for the specified key.
|
||||
///
|
||||
/// The key may be any borrowed form of the map's key type, but
|
||||
/// `Hash` and `Eq` on the borrowed form *must* match those for
|
||||
/// [`Hash`] and [`Eq`] on the borrowed form *must* match those for
|
||||
/// the key type.
|
||||
///
|
||||
/// [`Eq`]: ../../std/cmp/trait.Eq.html
|
||||
/// [`Hash`]: ../../std/hash/trait.Hash.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
|
@ -1086,9 +1098,12 @@ impl<K, V, S> HashMap<K, V, S>
|
|||
/// Returns a mutable reference to the value corresponding to the key.
|
||||
///
|
||||
/// The key may be any borrowed form of the map's key type, but
|
||||
/// `Hash` and `Eq` on the borrowed form *must* match those for
|
||||
/// [`Hash`] and [`Eq`] on the borrowed form *must* match those for
|
||||
/// the key type.
|
||||
///
|
||||
/// [`Eq`]: ../../std/cmp/trait.Eq.html
|
||||
/// [`Hash`]: ../../std/hash/trait.Hash.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
|
@ -1143,9 +1158,12 @@ impl<K, V, S> HashMap<K, V, S>
|
|||
/// was previously in the map.
|
||||
///
|
||||
/// The key may be any borrowed form of the map's key type, but
|
||||
/// `Hash` and `Eq` on the borrowed form *must* match those for
|
||||
/// [`Hash`] and [`Eq`] on the borrowed form *must* match those for
|
||||
/// the key type.
|
||||
///
|
||||
/// [`Eq`]: ../../std/cmp/trait.Eq.html
|
||||
/// [`Hash`]: ../../std/hash/trait.Hash.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
|
@ -1904,12 +1922,15 @@ impl<'a, K, V, S> Extend<(&'a K, &'a V)> for HashMap<K, V, S>
|
|||
}
|
||||
}
|
||||
|
||||
/// `RandomState` is the default state for `HashMap` types.
|
||||
/// `RandomState` is the default state for [`HashMap`] types.
|
||||
///
|
||||
/// A particular instance `RandomState` will create the same instances of
|
||||
/// `Hasher`, but the hashers created by two different `RandomState`
|
||||
/// [`Hasher`], but the hashers created by two different `RandomState`
|
||||
/// instances are unlikely to produce the same result for the same values.
|
||||
///
|
||||
/// [`HashMap`]: struct.HashMap.html
|
||||
/// [`Hasher`]: ../../hash/trait.Hasher.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
|
@ -1980,10 +2001,13 @@ impl BuildHasher for RandomState {
|
|||
}
|
||||
}
|
||||
|
||||
/// The default `Hasher` used by `RandomState`.
|
||||
/// The default [`Hasher`] used by [`RandomState`].
|
||||
///
|
||||
/// The internal algorithm is not specified, and so it and its hashes should
|
||||
/// not be relied upon over releases.
|
||||
///
|
||||
/// [`RandomState`]: struct.RandomState.html
|
||||
/// [`Hasher`]: ../../hash/trait.Hasher.html
|
||||
#[unstable(feature = "hashmap_default_hasher", issue = "0")]
|
||||
pub struct DefaultHasher(SipHasher13);
|
||||
|
||||
|
|
Loading…
Reference in New Issue