Trait TypeHash

Source
pub trait TypeHash {
    // Required method
    fn write_hash(hasher: &mut impl Hasher);

    // Provided method
    fn type_hash() -> u64 { ... }
}
Expand description

A hash of a type’s structure

Required Methods§

Source

fn write_hash(hasher: &mut impl Hasher)

Write the structure of the type to the hasher

Provided Methods§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl TypeHash for Ordering

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for c_void

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for IpAddr

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for SocketAddr

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for FpCategory

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for bool

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for char

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for f32

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for f64

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for i8

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for i16

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for i32

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for i64

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for i128

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for isize

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for str

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for u8

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for u16

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for u32

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for u64

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for u128

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for ()

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for usize

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for CString

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for String

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for TypeId

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for CStr

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for Ipv4Addr

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for Ipv6Addr

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for SocketAddrV4

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for SocketAddrV6

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for RangeFull

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for AtomicBool

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for AtomicI8

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for AtomicI16

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for AtomicI32

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for AtomicI64

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for AtomicIsize

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for AtomicU8

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for AtomicU16

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for AtomicU32

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for AtomicU64

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for AtomicUsize

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for Duration

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for OsStr

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for OsString

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for Path

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for PathBuf

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for Once

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for Builder

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for Thread

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for ThreadId

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for Instant

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for SystemTime

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for NonZeroI8

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for NonZeroI16

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for NonZeroI32

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for NonZeroI64

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for NonZeroI128

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for NonZeroIsize

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for NonZeroU8

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for NonZeroU16

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for NonZeroU32

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for NonZeroU64

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for NonZeroU128

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl TypeHash for NonZeroUsize

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<'a, T: TypeHash + ?Sized + ToOwned> TypeHash for Cow<'a, T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<'a, T: TypeHash + ?Sized> TypeHash for &'a T

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<'a, T: TypeHash + ?Sized> TypeHash for &'a mut T

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<'a, T: TypeHash + ?Sized> TypeHash for Ref<'a, T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<'a, T: TypeHash + ?Sized> TypeHash for RwLockReadGuard<'a, T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<'a, T: TypeHash + ?Sized> TypeHash for RwLockWriteGuard<'a, T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<'a, T: TypeHash> TypeHash for RefMut<'a, T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<A: TypeHash> TypeHash for (A,)

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<A: TypeHash, B: TypeHash> TypeHash for (A, B)

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<A: TypeHash, B: TypeHash, C: TypeHash> TypeHash for (A, B, C)

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<A: TypeHash, B: TypeHash, C: TypeHash, D: TypeHash> TypeHash for (A, B, C, D)

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<A: TypeHash, B: TypeHash, C: TypeHash, D: TypeHash, E: TypeHash> TypeHash for (A, B, C, D, E)

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<A: TypeHash, B: TypeHash, C: TypeHash, D: TypeHash, E: TypeHash, F: TypeHash> TypeHash for (A, B, C, D, E, F)

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<A: TypeHash, B: TypeHash, C: TypeHash, D: TypeHash, E: TypeHash, F: TypeHash, G: TypeHash> TypeHash for (A, B, C, D, E, F, G)

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<A: TypeHash, B: TypeHash, C: TypeHash, D: TypeHash, E: TypeHash, F: TypeHash, G: TypeHash, H: TypeHash> TypeHash for (A, B, C, D, E, F, G, H)

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<A: TypeHash, B: TypeHash, C: TypeHash, D: TypeHash, E: TypeHash, F: TypeHash, G: TypeHash, H: TypeHash, I: TypeHash> TypeHash for (A, B, C, D, E, F, G, H, I)

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<A: TypeHash, B: TypeHash, C: TypeHash, D: TypeHash, E: TypeHash, F: TypeHash, G: TypeHash, H: TypeHash, I: TypeHash, J: TypeHash> TypeHash for (A, B, C, D, E, F, G, H, I, J)

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<A: TypeHash, B: TypeHash, C: TypeHash, D: TypeHash, E: TypeHash, F: TypeHash, G: TypeHash, H: TypeHash, I: TypeHash, J: TypeHash, K: TypeHash> TypeHash for (A, B, C, D, E, F, G, H, I, J, K)

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<A: TypeHash, B: TypeHash, C: TypeHash, D: TypeHash, E: TypeHash, F: TypeHash, G: TypeHash, H: TypeHash, I: TypeHash, J: TypeHash, K: TypeHash, L: TypeHash> TypeHash for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<K: TypeHash, V: TypeHash> TypeHash for BTreeMap<K, V>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<K: TypeHash, V: TypeHash> TypeHash for HashMap<K, V>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for *const T

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for *mut T

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for Box<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for Rc<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for Weak<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for Arc<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for Weak<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for Cell<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for RefCell<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for PhantomData<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for ManuallyDrop<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for NonNull<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for Mutex<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash + ?Sized> TypeHash for RwLock<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for Bound<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for Option<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 0]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 1]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 2]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 3]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 4]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 5]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 6]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 7]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 8]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 9]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 10]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 11]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 12]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 13]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 14]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 15]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 16]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 17]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 18]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 19]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 20]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 21]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 22]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 23]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 24]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 25]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 26]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 27]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 28]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 29]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 30]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 31]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T; 32]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for [T]

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for BinaryHeap<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for BTreeSet<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for LinkedList<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for VecDeque<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for Vec<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for UnsafeCell<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for Reverse<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for BuildHasherDefault<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for Wrapping<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for Range<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for RangeFrom<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for RangeInclusive<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for RangeTo<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for RangeToInclusive<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for Pin<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for AtomicPtr<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for HashSet<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for Receiver<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for Sender<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for SyncSender<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for LocalKey<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for JoinHandle<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash> TypeHash for MaybeUninit<T>

Source§

fn write_hash(hasher: &mut impl Hasher)

Source§

impl<T: TypeHash, E: TypeHash> TypeHash for Result<T, E>

Source§

fn write_hash(hasher: &mut impl Hasher)

Implementors§