Struct std::hash::BuildHasherDefault

1.7.0 · source ·
pub struct BuildHasherDefault<H>(_);
Expand description

用于为实现 HasherDefault 的类型创建默认的 BuildHasher 实例。

BuildHasherDefault<H> 可以在类型 H 实现 HasherDefault 时使用,并且您需要相应的 BuildHasher 实例,但没有定义。

任何 BuildHasherDefault 都是 零大小。可以用 default 创建。 当将 BuildHasherDefaultHashMapHashSet 一起使用时,不需要这样做,因为它们自己实现了适当的 Default 实例。

Examples

使用 BuildHasherDefault 指定用于的自定义 BuildHasher HashMap:

use std::collections::HashMap;
use std::hash::{BuildHasherDefault, Hasher};

#[derive(Default)]
struct MyHasher;

impl Hasher for MyHasher {
    fn write(&mut self, bytes: &[u8]) {
        // 您的哈希算法就在这里!
       unimplemented!()
    }

    fn finish(&self) -> u64 {
        // 您的哈希算法就在这里!
        unimplemented!()
    }
}

type MyBuildHasher = BuildHasherDefault<MyHasher>;

let hash_map = HashMap::<u32, u32, MyBuildHasher>::default();
Run

Trait Implementations§

source§

impl<H> BuildHasher for BuildHasherDefault<H>where H: Default + Hasher,

§

type Hasher = H

将创建的哈希器的类型。
source§

fn build_hasher(&self) -> H

创建一个新的哈希器。 Read more
source§

impl<H> Clone for BuildHasherDefault<H>

source§

fn clone(&self) -> BuildHasherDefault<H>

返回值的副本。 Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

source 执行复制分配。 Read more
1.9.0 · source§

impl<H> Debug for BuildHasherDefault<H>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

使用给定的格式化程序格式化该值。 Read more
source§

impl<H> Default for BuildHasherDefault<H>

source§

fn default() -> BuildHasherDefault<H>

返回类型的 “默认值”。 Read more
1.29.0 · source§

impl<H> PartialEq<BuildHasherDefault<H>> for BuildHasherDefault<H>

source§

fn eq(&self, _other: &BuildHasherDefault<H>) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.29.0 · source§

impl<H> Eq for BuildHasherDefault<H>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

获取 selfTypeIdRead more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

从拥有的值中一成不变地借用。 Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

从拥有的值中借用。 Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

返回未更改的参数。

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

调用 U::from(self)

也就是说,这种转换是 From<T> for U 实现选择执行的任何操作。

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

获得所有权后的结果类型。
source§

fn to_owned(&self) -> T

从借用的数据创建拥有的数据,通常是通过克隆。 Read more
source§

fn clone_into(&self, target: &mut T)

使用借来的数据来替换拥有的数据,通常是通过克隆。 Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

发生转换错误时返回的类型。
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

执行转换。
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

发生转换错误时返回的类型。
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

执行转换。