pub trait Hash {
// Required method
fn hash<H>(&self, state: &mut H)
where H: Hasher;
// Provided method
fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher,
Self: Sized { ... }
}
Expand description
core
A hashable type.
Types implementing Hash
are able to be hash
ed with an instance of
Hasher
.
§Implementing Hash
You can derive Hash
with #[derive(Hash)]
if all fields implement Hash
.
The resulting hash will be the combination of the values from calling
hash
on each field.
#[derive(Hash)]
struct Rustacean {
name: String,
country: String,
}
If you need more control over how a value is hashed, you can of course
implement the Hash
trait yourself:
use std::hash::{Hash, Hasher};
struct Person {
id: u32,
name: String,
phone: u64,
}
impl Hash for Person {
fn hash<H: Hasher>(&self, state: &mut H) {
self.id.hash(state);
self.phone.hash(state);
}
}
§Hash
and Eq
When implementing both Hash
and Eq
, it is important that the following
property holds:
k1 == k2 -> hash(k1) == hash(k2)
In other words, if two keys are equal, their hashes must also be equal.
HashMap
and HashSet
both rely on this behavior.
Thankfully, you won’t need to worry about upholding this property when
deriving both Eq
and Hash
with #[derive(PartialEq, Eq, Hash)]
.
Violating this property is a logic error. The behavior resulting from a logic error is not
specified, but users of the trait must ensure that such logic errors do not result in
undefined behavior. This means that unsafe
code must not rely on the correctness of these
methods.
§Prefix collisions
Implementations of hash
should ensure that the data they
pass to the Hasher
are prefix-free. That is,
values which are not equal should cause two different sequences of values to be written,
and neither of the two sequences should be a prefix of the other.
For example, the standard implementation of Hash
for &str
passes an extra
0xFF
byte to the Hasher
so that the values ("ab", "c")
and ("a", "bc")
hash differently.
§Portability
Due to differences in endianness and type sizes, data fed by Hash
to a Hasher
should not be considered portable across platforms. Additionally the data passed by most
standard library types should not be considered stable between compiler versions.
This means tests shouldn’t probe hard-coded hash values or data fed to a Hasher
and
instead should check consistency with Eq
.
Serialization formats intended to be portable between platforms or compiler versions should
either avoid encoding hashes or only rely on Hash
and Hasher
implementations that
provide additional guarantees.
Required Methods§
Provided Methods§
1.3.0 · Sourcefn hash_slice<H>(data: &[Self], state: &mut H)
fn hash_slice<H>(data: &[Self], state: &mut H)
Feeds a slice of this type into the given Hasher
.
This method is meant as a convenience, but its implementation is
also explicitly left unspecified. It isn’t guaranteed to be
equivalent to repeated calls of hash
and implementations of
Hash
should keep that in mind and call hash
themselves
if the slice isn’t treated as a whole unit in the PartialEq
implementation.
For example, a VecDeque
implementation might naïvely call
as_slices
and then hash_slice
on each slice, but this
is wrong since the two slices can change with a call to
make_contiguous
without affecting the PartialEq
result. Since these slices aren’t treated as singular
units, and instead part of a larger deque, this method cannot
be used.
§Examples
use std::hash::{DefaultHasher, Hash, Hasher};
let mut hasher = DefaultHasher::new();
let numbers = [6, 28, 496, 8128];
Hash::hash_slice(&numbers, &mut hasher);
println!("Hash is {:x}!", hasher.finish());
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.
Implementors§
impl Hash for devela::_core::ascii::Char
impl Hash for IpAddr
impl Hash for Ipv6MulticastScope
impl Hash for SocketAddr
impl Hash for CheckedCastError
impl Hash for PodCastError
impl Hash for devela::_dep::crossterm::event::Event
impl Hash for devela::_dep::crossterm::event::KeyCode
impl Hash for KeyEventKind
impl Hash for MediaKeyCode
impl Hash for ModifierKeyCode
impl Hash for devela::_dep::crossterm::event::MouseButton
impl Hash for MouseEventKind
impl Hash for Attribute
impl Hash for Color
impl Hash for Colored
impl Hash for ClearType
impl Hash for Era
impl Hash for Weekday
impl Hash for RoundMode
impl Hash for Unit
impl Hash for Meridiem
impl Hash for PiecesOffset
impl Hash for Dst
impl Hash for EqFilterKind
impl Hash for WhenToStart
impl Hash for PlaybackState
impl Hash for TrackPlaybackState
impl Hash for devela::_dep::log::Level
impl Hash for devela::_dep::log::LevelFilter
impl Hash for CursorIcon
impl Hash for FilterMode
impl Hash for devela::_dep::miniquad::KeyCode
impl Hash for MipmapFilterMode
impl Hash for devela::_dep::miniquad::MouseButton
impl Hash for RawId
impl Hash for TextureFormat
impl Hash for TouchPhase
impl Hash for Panic
impl Hash for ArchivedIpAddr
impl Hash for ArchivedSocketAddr
impl Hash for HostId
impl Hash for IoringMsgringCmds
impl Hash for IoringOp
impl Hash for IoringRegisterOp
impl Hash for IoringRestrictionOp
impl Hash for Direction
impl Hash for Shutdown
impl Hash for SocketAddrAny
impl Hash for Timeout
impl Hash for Action
impl Hash for OptionalActions
impl Hash for QueueSelector
impl Hash for devela::_dep::rustix::thread::ClockId
impl Hash for TimerfdClockId
impl Hash for StandardTagKey
impl Hash for StandardVisualKey
impl Hash for devela::_dep::winnow::error::ErrorKind
impl Hash for ExampleEnumIntU8
doc
only.impl Hash for AngleDirection
geom
only.impl Hash for AngleKind
geom
only.impl Hash for AudioError
audio
only.impl Hash for CompressionMode
impl Hash for DrawError
draw
only.impl Hash for EncodingMode
impl Hash for FontError
font
only.impl Hash for devela::all::IoErrorKind
impl Hash for MidiError
midi
only.impl Hash for NotAvailable
impl Hash for WaveletUnitRole
wave
only.impl Hash for Infallible
impl Hash for NumError
impl Hash for devela::num::Ordering
impl Hash for Sign
impl Hash for Month
impl Hash for devela::text::AsciiChar
impl Hash for InvalidText
impl Hash for LayoutError
layout
only.impl Hash for devela::work::AtomicOrdering
impl Hash for DataNotEnough
impl Hash for MismatchedBounds
impl Hash for PartialSpace
impl Hash for EulerRot
impl Hash for bool
impl Hash for char
impl Hash for i8
impl Hash for i16
impl Hash for i32
impl Hash for i64
impl Hash for i128
impl Hash for isize
impl Hash for !
impl Hash for str
impl Hash for u8
impl Hash for u16
impl Hash for u32
impl Hash for u64
impl Hash for u128
impl Hash for ()
impl Hash for usize
impl Hash for Ipv4Addr
impl Hash for Ipv6Addr
impl Hash for SocketAddrV4
impl Hash for SocketAddrV6
impl Hash for Alignment
impl Hash for FileType
impl Hash for devela::_dep::_std::os::unix::net::UCred
impl Hash for KeyEvent
impl Hash for KeyEventState
impl Hash for KeyModifiers
impl Hash for KeyboardEnhancementFlags
impl Hash for MouseEvent
impl Hash for Date
impl Hash for DateTime
impl Hash for ISOWeekDate
impl Hash for Time
impl Hash for PiecesNumericOffset
impl Hash for SignedDuration
impl Hash for Timestamp
impl Hash for Zoned
impl Hash for Offset
impl Hash for MockBackendSettings
impl Hash for devela::_dep::kira::clock::ClockId
impl Hash for ListenerId
impl Hash for ModulatorId
impl Hash for Capacities
impl Hash for ResourceLimitReached
impl Hash for SendTrackId
impl Hash for BufferId
impl Hash for Pipeline
impl Hash for ShaderId
impl Hash for TextureId
impl Hash for PyBackedBytes
impl Hash for PyBackedStr
impl Hash for Failure
impl Hash for ArchivedCString
impl Hash for ArchivedIpv4Addr
impl Hash for ArchivedIpv6Addr
impl Hash for ArchivedSocketAddrV4
impl Hash for ArchivedSocketAddrV6
impl Hash for ArchivedOptionNonZeroI8
impl Hash for ArchivedOptionNonZeroI16
impl Hash for ArchivedOptionNonZeroI32
impl Hash for ArchivedOptionNonZeroI64
impl Hash for ArchivedOptionNonZeroI128
impl Hash for ArchivedOptionNonZeroU8
impl Hash for ArchivedOptionNonZeroU16
impl Hash for ArchivedOptionNonZeroU32
impl Hash for ArchivedOptionNonZeroU64
impl Hash for ArchivedOptionNonZeroU128
impl Hash for ArchivedRangeFull
impl Hash for NonZeroI16_be
impl Hash for NonZeroI16_le
impl Hash for NonZeroI32_be
impl Hash for NonZeroI32_le
impl Hash for NonZeroI64_be
impl Hash for NonZeroI64_le
impl Hash for NonZeroI128_be
impl Hash for NonZeroI128_le
impl Hash for NonZeroU16_be
impl Hash for NonZeroU16_le
impl Hash for NonZeroU32_be
impl Hash for NonZeroU32_le
impl Hash for NonZeroU64_be
impl Hash for NonZeroU64_le
impl Hash for NonZeroU128_be
impl Hash for NonZeroU128_le
impl Hash for char_be
impl Hash for char_le
impl Hash for i16_be
impl Hash for i16_le
impl Hash for i32_be
impl Hash for i32_le
impl Hash for i64_be
impl Hash for i64_le
impl Hash for i128_be
impl Hash for i128_le
impl Hash for u16_be
impl Hash for u16_le
impl Hash for u32_be
impl Hash for u32_le
impl Hash for u64_be
impl Hash for u64_le
impl Hash for u128_be
impl Hash for u128_le
impl Hash for NonZeroI16_ube
impl Hash for NonZeroI16_ule
impl Hash for NonZeroI32_ube
impl Hash for NonZeroI32_ule
impl Hash for NonZeroI64_ube
impl Hash for NonZeroI64_ule
impl Hash for NonZeroI128_ube
impl Hash for NonZeroI128_ule
impl Hash for NonZeroU16_ube
impl Hash for NonZeroU16_ule
impl Hash for NonZeroU32_ube
impl Hash for NonZeroU32_ule
impl Hash for NonZeroU64_ube
impl Hash for NonZeroU64_ule
impl Hash for NonZeroU128_ube
impl Hash for NonZeroU128_ule
impl Hash for char_ube
impl Hash for char_ule
impl Hash for i16_ube
impl Hash for i16_ule
impl Hash for i32_ube
impl Hash for i32_ule
impl Hash for i64_ube
impl Hash for i64_ule
impl Hash for i128_ube
impl Hash for i128_ule
impl Hash for u16_ube
impl Hash for u16_ule
impl Hash for u32_ube
impl Hash for u32_ule
impl Hash for u64_ube
impl Hash for u64_ule
impl Hash for u128_ube
impl Hash for u128_ule
impl Hash for ArchivedString
impl Hash for ArchivedDuration
impl Hash for InputStreamTimestamp
impl Hash for OutputStreamTimestamp
impl Hash for StreamInstant
impl Hash for devela::_dep::rustix::event::epoll::CreateFlags
impl Hash for EventfdFlags
impl Hash for PollFlags
impl Hash for devela::_dep::rustix::fs::inotify::CreateFlags
impl Hash for ReadFlags
impl Hash for WatchFlags
impl Hash for devela::_dep::rustix::fs::Access
impl Hash for AtFlags
impl Hash for FallocateFlags
impl Hash for FdFlags
impl Hash for devela::_dep::rustix::fs::Gid
impl Hash for MemfdFlags
impl Hash for Mode
impl Hash for MountFlags
impl Hash for MountPropagationFlags
impl Hash for OFlags
impl Hash for RenameFlags
impl Hash for ResolveFlags
impl Hash for SealFlags
impl Hash for StatVfsMountFlags
impl Hash for StatxFlags
impl Hash for devela::_dep::rustix::fs::Uid
impl Hash for UnmountFlags
impl Hash for XattrFlags
impl Hash for DupFlags
impl Hash for Errno
impl Hash for ReadWriteFlags
impl Hash for devela::_dep::rustix::io_uring::EpollEvent
impl Hash for EventFlags
impl Hash for IoringAcceptFlags
impl Hash for IoringAsyncCancelFlags
impl Hash for IoringCqFlags
impl Hash for IoringCqeFlags
impl Hash for IoringEnterFlags
impl Hash for IoringFeatureFlags
impl Hash for IoringFsyncFlags
impl Hash for IoringMsgringFlags
impl Hash for IoringOpFlags
impl Hash for IoringPollFlags
impl Hash for IoringRecvFlags
impl Hash for IoringRegisterFlags
impl Hash for IoringRsrcFlags
impl Hash for IoringSendFlags
impl Hash for IoringSetupFlags
impl Hash for IoringSqFlags
impl Hash for IoringSqeFlags
impl Hash for IoringTimeoutFlags
impl Hash for RecvFlags
impl Hash for RecvmsgOutFlags
impl Hash for SendFlags
impl Hash for SocketFlags
impl Hash for devela::_dep::rustix::io_uring::SpliceFlags
impl Hash for Opcode
impl Hash for MapFlags
impl Hash for MlockAllFlags
impl Hash for MlockFlags
impl Hash for MprotectFlags
impl Hash for MremapFlags
impl Hash for MsyncFlags
impl Hash for ProtFlags
impl Hash for UserfaultfdFlags
impl Hash for FsMountFlags
impl Hash for FsOpenFlags
impl Hash for FsPickFlags
impl Hash for MountAttrFlags
impl Hash for MoveMountFlags
impl Hash for OpenTreeFlags
impl Hash for AddressFamily
impl Hash for Protocol
impl Hash for SocketAddrUnix
impl Hash for SocketType
impl Hash for devela::_dep::rustix::net::UCred
impl Hash for SockaddrXdpFlags
impl Hash for SocketAddrXdp
impl Hash for XdpDesc
impl Hash for XdpDescOptions
impl Hash for XdpMmapOffsets
impl Hash for XdpOptions
impl Hash for XdpOptionsFlags
impl Hash for XdpRingFlags
impl Hash for XdpRingOffset
impl Hash for XdpStatistics
impl Hash for XdpUmemReg
impl Hash for XdpUmemRegFlags
impl Hash for PipeFlags
impl Hash for devela::_dep::rustix::pipe::SpliceFlags
impl Hash for CpuSet
impl Hash for Cpuid
impl Hash for FloatingPointEmulationControl
impl Hash for FloatingPointExceptionMode
impl Hash for MembarrierQuery
impl Hash for devela::_dep::rustix::process::Pid
impl Hash for PidfdFlags
impl Hash for PidfdGetfdFlags
impl Hash for SpeculationFeatureControl
impl Hash for SpeculationFeatureState
impl Hash for UnalignedAccessControl
impl Hash for WaitOptions
impl Hash for WaitidOptions
impl Hash for OpenptFlags
impl Hash for GetRandomFlags
impl Hash for ShmOFlags
impl Hash for ControlModes
impl Hash for InputModes
impl Hash for LocalModes
impl Hash for OutputModes
impl Hash for SpecialCodeIndex
impl Hash for CapabilitiesSecureBits
impl Hash for CapabilityFlags
impl Hash for devela::_dep::rustix::thread::FutexFlags
impl Hash for TaggedAddressMode
impl Hash for ThreadNameSpaceType
impl Hash for TimerfdFlags
impl Hash for TimerfdTimerFlags
impl Hash for Channels
impl Hash for CodecType
impl Hash for devela::_dep::sysinfo::Gid
impl Hash for IpNetwork
impl Hash for devela::_dep::sysinfo::Pid
impl Hash for devela::_dep::sysinfo::Uid
impl Hash for Identifier
impl Hash for Field
impl Hash for devela::_dep::tracing::level_filters::LevelFilter
impl Hash for Id
impl Hash for devela::_dep::tracing::Level
impl Hash for Span
impl Hash for BStr
impl Hash for devela::_dep::winnow::Bytes
impl Hash for ExampleBitfield
_bit_u8
and doc
only.impl Hash for ExampleBitfieldCustom
_bit_u8
and doc
only.impl Hash for ExampleBitfieldExtra
_bit_u8
and doc
only.impl Hash for ExampleEnumSet
doc
only.impl Hash for ExampleIdSeqUsize
doc
only.impl Hash for FailedErrorConversion
impl Hash for False
impl Hash for Error
impl Hash for Layout
impl Hash for NotImplemented
impl Hash for NotSupported
impl Hash for Path
impl Hash for PathBuf
impl Hash for PrefixComponent<'_>
impl Hash for PhantomPinned
impl Hash for RangeFull
impl Hash for devela::all::String
impl Hash for True
impl Hash for TypeId
impl Hash for CStr
impl Hash for CString
impl Hash for OsStr
impl Hash for OsString
impl Hash for Divisor<i8>
impl Hash for Divisor<i16>
impl Hash for Divisor<i32>
impl Hash for Divisor<i64>
impl Hash for Divisor<i128>
impl Hash for Divisor<isize>
impl Hash for Divisor<u8>
impl Hash for Divisor<u16>
impl Hash for Divisor<u32>
impl Hash for Divisor<u64>
impl Hash for Divisor<u128>
impl Hash for Divisor<usize>
impl Hash for Duration
impl Hash for Instant
impl Hash for SystemTime
impl Hash for SystemTimeError
impl Hash for GraphemeString
impl Hash for InvalidChar
impl Hash for InvalidUtf8
impl Hash for char7
impl Hash for char8
impl Hash for char16
impl Hash for ThreadId
impl Hash for DataOverflow
impl Hash for ElementNotFound
impl Hash for IdPinBox
impl Hash for IndexOutOfBounds
impl Hash for InvalidAxisLength
impl Hash for KeyAlreadyExists
impl Hash for MismatchedCapacity
impl Hash for MismatchedDimensions
impl Hash for MismatchedIndices
impl Hash for NodeEmpty
impl Hash for NodeLinkNotSet
impl Hash for NodeLinkNotUnique
impl Hash for NotEnoughElements
impl Hash for NotEnoughSpace
impl Hash for PartiallyAdded
impl Hash for BVec2
impl Hash for BVec3
impl Hash for BVec4
impl Hash for BVec3A
impl Hash for BVec4A
impl Hash for I8Vec2
impl Hash for I8Vec3
impl Hash for I8Vec4
impl Hash for I16Vec2
impl Hash for I16Vec3
impl Hash for I16Vec4
impl Hash for IVec2
impl Hash for IVec3
impl Hash for IVec4
impl Hash for I64Vec2
impl Hash for I64Vec3
impl Hash for I64Vec4
impl Hash for U8Vec2
impl Hash for U8Vec3
impl Hash for U8Vec4
impl Hash for U16Vec2
impl Hash for U16Vec3
impl Hash for U16Vec4
impl Hash for UVec2
impl Hash for UVec3
impl Hash for UVec4
impl Hash for U64Vec2
impl Hash for U64Vec3
impl Hash for U64Vec4
impl Hash for EventData
impl Hash for Access
impl Hash for Addr
impl Hash for ArenaFull
impl Hash for AudioTstampType
impl Hash for Bytes
impl Hash for BytesMut
impl Hash for ChmapPosition
impl Hash for ChmapType
impl Hash for Connect
impl Hash for ElemIface
impl Hash for ElemType
impl Hash for Encoding
impl Hash for EvCtrl
impl Hash for EvNote
impl Hash for EvResult
impl Hash for EventType
impl Hash for ExtraXYZ
impl Hash for ExtraZXZ
impl Hash for ExtraZYX
impl Hash for Flags
impl Hash for Format
impl Hash for InsertWithKeyError
impl Hash for IntraXYZ
impl Hash for IntraZXZ
impl Hash for IntraZYX
impl Hash for Key
impl Hash for MilliBel
impl Hash for PortCap
impl Hash for PortType
impl Hash for Remove
impl Hash for SelemChannelId
impl Hash for SigId
impl Hash for State
impl Hash for Token
impl Hash for TstampType
impl Hash for _bindgen_ty_1
impl Hash for _bindgen_ty_1
impl Hash for _bindgen_ty_1
impl Hash for _bindgen_ty_2
impl Hash for _bindgen_ty_2
impl Hash for _bindgen_ty_2
impl Hash for _bindgen_ty_3
impl Hash for _bindgen_ty_3
impl Hash for _bindgen_ty_3
impl Hash for _bindgen_ty_4
impl Hash for _bindgen_ty_4
impl Hash for _bindgen_ty_4
impl Hash for _bindgen_ty_5
impl Hash for _bindgen_ty_5
impl Hash for _bindgen_ty_5
impl Hash for _bindgen_ty_6
impl Hash for _bindgen_ty_6
impl Hash for _bindgen_ty_6
impl Hash for _bindgen_ty_7
impl Hash for _bindgen_ty_7
impl Hash for _bindgen_ty_8
impl Hash for _bindgen_ty_8
impl Hash for _bindgen_ty_9
impl Hash for _bindgen_ty_9
impl Hash for _bindgen_ty_10
impl Hash for _bindgen_ty_11
impl Hash for _bindgen_ty_12
impl Hash for _bindgen_ty_13
impl Hash for _bindgen_ty_14
impl Hash for _bindgen_ty_15
impl Hash for _bindgen_ty_16
impl Hash for _bindgen_ty_17
impl Hash for _bindgen_ty_18
impl Hash for _bindgen_ty_19
impl Hash for _bindgen_ty_20
impl Hash for _bindgen_ty_21
impl Hash for _bindgen_ty_22
impl Hash for _bindgen_ty_23
impl Hash for _bindgen_ty_24
impl Hash for _bindgen_ty_25
impl Hash for _bindgen_ty_26
impl Hash for _bindgen_ty_27
impl Hash for _bindgen_ty_28
impl Hash for _bindgen_ty_29
impl Hash for _bindgen_ty_30
impl Hash for _bindgen_ty_31
impl Hash for _bindgen_ty_32
impl Hash for _bindgen_ty_33
impl Hash for _bindgen_ty_34
impl Hash for _bindgen_ty_35
impl Hash for _bindgen_ty_36
impl Hash for _bindgen_ty_37
impl Hash for _bindgen_ty_38
impl Hash for _bindgen_ty_39
impl Hash for _bindgen_ty_40
impl Hash for _bindgen_ty_41
impl Hash for _bindgen_ty_42
impl Hash for _bindgen_ty_43
impl Hash for _bindgen_ty_44
impl Hash for _bindgen_ty_45
impl Hash for _bindgen_ty_46
impl Hash for _bindgen_ty_47
impl Hash for _bindgen_ty_48
impl Hash for _bindgen_ty_49
impl Hash for _bindgen_ty_50
impl Hash for _bindgen_ty_51
impl Hash for _bindgen_ty_52
impl Hash for _bindgen_ty_53
impl Hash for _bindgen_ty_54
impl Hash for _bindgen_ty_55
impl Hash for _bindgen_ty_56
impl Hash for _bindgen_ty_57
impl Hash for _bindgen_ty_58
impl Hash for _bindgen_ty_59
impl Hash for _bindgen_ty_60
impl Hash for _bindgen_ty_61
impl Hash for _bindgen_ty_62
impl Hash for _bindgen_ty_63
impl Hash for _bindgen_ty_64
impl Hash for _bindgen_ty_65
impl Hash for _bindgen_ty_66
impl Hash for fsconfig_command
impl Hash for fsconfig_command
impl Hash for ifla_geneve_df
impl Hash for ifla_gtp_role
impl Hash for ifla_vxlan_df
impl Hash for in6_addr_gen_mode
impl Hash for io_uring_op
impl Hash for ipvlan_mode
impl Hash for macsec_offload
impl Hash for macsec_validation_type
impl Hash for macvlan_macaddr_mode
impl Hash for macvlan_mode
impl Hash for membarrier_cmd
impl Hash for membarrier_cmd_flag
impl Hash for net_device_flags
impl Hash for netlink_attribute_type
impl Hash for netlink_policy_type_attr
impl Hash for nf_dev_hooks
impl Hash for nf_inet_hooks
impl Hash for nf_ip6_hook_priorities
impl Hash for nf_ip_hook_priorities
impl Hash for nl_mmap_status
impl Hash for nlmsgerr_attrs
impl Hash for rt_class_t
impl Hash for rt_scope_t
impl Hash for rtattr_type_t
impl Hash for rtnetlink_groups
impl Hash for socket_state
impl Hash for tcp_ca_state
impl Hash for tcp_fastopen_client_fail
impl<'a> Hash for Component<'a>
impl<'a> Hash for Prefix<'a>
impl<'a> Hash for Metadata<'a>
impl<'a> Hash for MetadataBuilder<'a>
impl<'a> Hash for Location<'a>
impl<'a> Hash for IdPin<'a>
impl<'a, T> Hash for devela::_dep::bumpalo::boxed::Box<'a, T>
impl<'a, T: Hash + 'a> Hash for ConstList<'a, T>
impl<'a, T: Hash> Hash for ConstListIterator<'a, T>
impl<'a, _0: Hash, _1: Hash, _2: Hash, _3: Hash, _4: Hash, _5: Hash, _6: Hash, _7: Hash, _8: Hash, _9: Hash, _10: Hash, _11: Hash> Hash for TupleElementMut<'a, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11>
_tuple
only.impl<'a, _0: Hash, _1: Hash, _2: Hash, _3: Hash, _4: Hash, _5: Hash, _6: Hash, _7: Hash, _8: Hash, _9: Hash, _10: Hash, _11: Hash> Hash for TupleElementRef<'a, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11>
_tuple
only.impl<'bump> Hash for devela::_dep::bumpalo::collections::String<'bump>
impl<'bump, T> Hash for devela::_dep::bumpalo::collections::Vec<'bump, T>where
T: 'bump + Hash,
impl<'n> Hash for TimeZoneAnnotationKind<'n>
impl<'n> Hash for Pieces<'n>
impl<'n> Hash for TimeZoneAnnotation<'n>
impl<'n> Hash for TimeZoneAnnotationName<'n>
impl<A> Hash for SmallVec<A>where
A: Array,
<A as Array>::Item: Hash,
impl<B> Hash for Cow<'_, B>
impl<B, C> Hash for ControlFlow<B, C>
impl<Dyn> Hash for devela::_core::ptr::DynMetadata<Dyn>where
Dyn: ?Sized,
impl<Dyn> Hash for devela::_dep::rkyv::ptr_meta::DynMetadata<Dyn>where
Dyn: ?Sized,
impl<F> Hash for Fwhere
F: FnPtr,
impl<G: Hash, C: Hash> Hash for GcdReturn<G, C>
impl<Idx> Hash for devela::_core::range::Range<Idx>where
Idx: Hash,
impl<Idx> Hash for devela::_core::range::RangeFrom<Idx>where
Idx: Hash,
impl<Idx> Hash for devela::_core::range::RangeInclusive<Idx>where
Idx: Hash,
impl<Idx> Hash for devela::all::Range<Idx>where
Idx: Hash,
impl<Idx> Hash for devela::all::RangeFrom<Idx>where
Idx: Hash,
impl<Idx> Hash for devela::all::RangeInclusive<Idx>where
Idx: Hash,
impl<Idx> Hash for RangeTo<Idx>where
Idx: Hash,
impl<Idx> Hash for RangeToInclusive<Idx>where
Idx: Hash,
impl<K, V> Hash for Entry<K, V>
impl<K, V, A> Hash for BTreeMap<K, V, A>
impl<L, R> Hash for Either<L, R>
impl<N: Hash, H: Hash> Hash for Mismatch<N, H>
impl<Ptr> Hash for Pin<Ptr>
impl<Storage> Hash for __BindgenBitfieldUnit<Storage>where
Storage: Hash,
impl<Storage> Hash for __BindgenBitfieldUnit<Storage>where
Storage: Hash,
impl<Storage, Align> Hash for __BindgenBitfieldUnit<Storage, Align>
impl<T0> Hash for ArchivedTuple1<T0>where
T0: Hash,
impl<T0, T1> Hash for ArchivedTuple2<T0, T1>
impl<T0, T1, T2> Hash for ArchivedTuple3<T0, T1, T2>
impl<T0, T1, T2, T3> Hash for ArchivedTuple4<T0, T1, T2, T3>
impl<T0, T1, T2, T3, T4> Hash for ArchivedTuple5<T0, T1, T2, T3, T4>
impl<T0, T1, T2, T3, T4, T5> Hash for ArchivedTuple6<T0, T1, T2, T3, T4, T5>
impl<T0, T1, T2, T3, T4, T5, T6> Hash for ArchivedTuple7<T0, T1, T2, T3, T4, T5, T6>
impl<T0, T1, T2, T3, T4, T5, T6, T7> Hash for ArchivedTuple8<T0, T1, T2, T3, T4, T5, T6, T7>
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Hash for ArchivedTuple9<T0, T1, T2, T3, T4, T5, T6, T7, T8>
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Hash for ArchivedTuple10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Hash for ArchivedTuple11<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Hash for ArchivedTuple12<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Hash for ArchivedTuple13<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>
impl<T> Hash for Option<T>where
T: Hash,
impl<T> Hash for ArchivedBound<T>where
T: Hash,
impl<T> Hash for ArchivedOption<T>where
T: Hash,
impl<T> Hash for Bound<T>where
T: Hash,
impl<T> Hash for Poll<T>where
T: Hash,
impl<T> Hash for *const Twhere
T: ?Sized,
impl<T> Hash for *mut Twhere
T: ?Sized,
impl<T> Hash for &T
impl<T> Hash for &mut T
impl<T> Hash for [T]where
T: Hash,
impl<T> Hash for (T₁, T₂, …, Tₙ)
This trait is implemented for tuples up to twelve items long.
impl<T> Hash for ArchivedBox<T>
impl<T> Hash for ArchivedOptionBox<T>
impl<T> Hash for ArchivedRange<T>where
T: Hash,
impl<T> Hash for ArchivedRangeFrom<T>where
T: Hash,
impl<T> Hash for ArchivedRangeInclusive<T>where
T: Hash,
impl<T> Hash for ArchivedRangeTo<T>where
T: Hash,
impl<T> Hash for ArchivedRangeToInclusive<T>where
T: Hash,
impl<T> Hash for ArchivedVec<T>where
T: Hash,
impl<T> Hash for Discriminant<T>
impl<T> Hash for ManuallyDrop<T>
impl<T> Hash for NonZero<T>where
T: ZeroablePrimitive + Hash,
impl<T> Hash for PhantomData<T>where
T: ?Sized,
impl<T> Hash for NonNull<T>where
T: ?Sized,
impl<T> Hash for Saturating<T>where
T: Hash,
impl<T> Hash for TypeResource<T>
impl<T> Hash for Wrapping<T>where
T: Hash,
impl<T> Hash for Reverse<T>where
T: Hash,
impl<T> Hash for CachePadded<T>where
T: Hash,
impl<T> Hash for ColumnMatrix2<T>where
T: Hash,
impl<T> Hash for ColumnMatrix2x3<T>where
T: Hash,
impl<T> Hash for ColumnMatrix2x4<T>where
T: Hash,
impl<T> Hash for ColumnMatrix3<T>where
T: Hash,
impl<T> Hash for ColumnMatrix3x2<T>where
T: Hash,
impl<T> Hash for ColumnMatrix3x4<T>where
T: Hash,
impl<T> Hash for ColumnMatrix4<T>where
T: Hash,
impl<T> Hash for ColumnMatrix4x2<T>where
T: Hash,
impl<T> Hash for ColumnMatrix4x3<T>where
T: Hash,
impl<T> Hash for EvQueueControl<T>where
T: Hash,
impl<T> Hash for Point2<T>where
T: Hash,
impl<T> Hash for Point3<T>where
T: Hash,
impl<T> Hash for Quaternion<T>where
T: Hash,
impl<T> Hash for RowMatrix2<T>where
T: Hash,
impl<T> Hash for RowMatrix2x3<T>where
T: Hash,
impl<T> Hash for RowMatrix2x4<T>where
T: Hash,
impl<T> Hash for RowMatrix3<T>where
T: Hash,
impl<T> Hash for RowMatrix3x2<T>where
T: Hash,
impl<T> Hash for RowMatrix3x4<T>where
T: Hash,
impl<T> Hash for RowMatrix4<T>where
T: Hash,
impl<T> Hash for RowMatrix4x2<T>where
T: Hash,
impl<T> Hash for RowMatrix4x3<T>where
T: Hash,
impl<T> Hash for Vector2<T>where
T: Hash,
impl<T> Hash for Vector3<T>where
T: Hash,
impl<T> Hash for Vector4<T>where
T: Hash,
impl<T> Hash for __BindgenUnionField<T>
impl<T> Hash for __BindgenUnionField<T>
impl<T, A> Hash for UniqueRc<T, A>
impl<T, A> Hash for BTreeSet<T, A>
impl<T, A> Hash for devela::all::Box<T, A>
impl<T, A> Hash for LinkedList<T, A>
impl<T, A> Hash for Rc<T, A>
impl<T, A> Hash for devela::all::Vec<T, A>
The hash of a vector is the same as that of the corresponding slice,
as required by the core::borrow::Borrow
implementation.
use std::hash::BuildHasher;
let b = std::hash::RandomState::new();
let v: Vec<u8> = vec![0xa8, 0x3c, 0x09];
let s: &[u8] = &[0xa8, 0x3c, 0x09];
assert_eq!(b.hash_one(v), b.hash_one(s));
impl<T, A> Hash for VecDeque<T, A>
impl<T, A> Hash for Arc<T, A>
impl<T, B> Hash for EulerAngles<T, B>
impl<T, E> Hash for ArchivedResult<T, E>
impl<T, E> Hash for Result<T, E>
impl<T, F> Hash for ArchivedRc<T, F>
impl<T, const CAP: usize> Hash for ArrayVec<T, CAP>where
T: Hash,
impl<T, const N: usize> Hash for [T; N]where
T: Hash,
The hash of an array is the same as that of the corresponding slice,
as required by the Borrow
implementation.
use std::hash::BuildHasher;
let b = std::hash::RandomState::new();
let a: [u8; 3] = [0xa8, 0x3c, 0x09];
let s: &[u8] = &[0xa8, 0x3c, 0x09];
assert_eq!(b.hash_one(a), b.hash_one(s));
impl<T, const N: usize> Hash for Simd<T, N>
impl<T: Hash> Hash for BareBox<T>
impl<T: Hash> Hash for CacheAlign<T>
impl<T: Hash> Hash for Frac<T>
impl<T: Hash> Hash for Int<T>
impl<T: Hash> Hash for Interval<T>
impl<T: Hash> Hash for Bitwise<T>
impl<T: Hash, const CAP: usize, S: Storage> Hash for Array<T, CAP, S>
impl<T: Hash, const D: usize> Hash for Extent<T, D>
geom
only.impl<T: Hash, const D: usize> Hash for Point<T, D>
geom
only.impl<T: Hash, const D: usize> Hash for Vector<T, D>
alg
only.impl<V, Q> Hash for ValueQuant<V, Q>
impl<Y, R> Hash for CoroutineState<Y, R>
impl<Y: Hash, MO: Hash, D: Hash, H: Hash, M: Hash, S: Hash, MS: Hash, US: Hash, NS: Hash> Hash for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>
impl<_0: Hash, _1: Hash, _2: Hash, _3: Hash, _4: Hash, _5: Hash, _6: Hash, _7: Hash, _8: Hash, _9: Hash, _10: Hash, _11: Hash> Hash for TupleElement<_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11>
_tuple
only.impl<const CAP: usize> Hash for StringNonul<CAP>
_string_nonul
only.impl<const CAP: usize> Hash for StringU8<CAP>
impl<const CAP: usize> Hash for StringU16<CAP>
impl<const CAP: usize> Hash for StringU32<CAP>
impl<const CAP: usize> Hash for StringUsize<CAP>
impl<const CAP: usize> Hash for GraphemeNonul<CAP>
impl<const CAP: usize> Hash for GraphemeU8<CAP>
impl<const CAP: usize> Hash for ArrayString<CAP>
impl<const V: i8> Hash for devela::_info::examples::niche::NonValueI8<V>
doc
only.