Trait comfy_core::Hash

1.0.0 · source ·
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

A hashable type.

Types implementing Hash are able to be hashed 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§

source

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Feeds this value into the given Hasher.

Examples
use std::hash::{DefaultHasher, Hash, Hasher};

let mut hasher = DefaultHasher::new();
7920.hash(&mut hasher);
println!("Hash is {:x}!", hasher.finish());

Provided Methods§

1.3.0 · source

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

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());

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Hash for ElementState

source§

impl Hash for comfy_core::KeyCode

source§

impl Hash for comfy_core::MouseButton

source§

impl Hash for RenderTargetId

source§

impl Hash for comfy_core::TextureHandle

source§

impl Hash for Uniform

source§

impl Hash for VirtualKeyCode

source§

impl Hash for AsciiChar

source§

impl Hash for core::cmp::Ordering

1.44.0 · source§

impl Hash for Infallible

1.7.0 · source§

impl Hash for IpAddr

source§

impl Hash for Ipv6MulticastScope

source§

impl Hash for SocketAddr

source§

impl Hash for core::sync::atomic::Ordering

source§

impl Hash for ErrorKind

source§

impl Hash for CheckedCastError

source§

impl Hash for PodCastError

source§

impl Hash for AboveOrBelow

source§

impl Hash for egui::data::input::Key

source§

impl Hash for Order

source§

impl Hash for SizeHint

source§

impl Hash for OperatingSystem

source§

impl Hash for TextStyle

source§

impl Hash for ViewportClass

source§

impl Hash for WriteStyle

source§

impl Hash for TextureId

source§

impl Hash for FontFamily

source§

impl Hash for TextureFilter

source§

impl Hash for EulerRot

source§

impl Hash for ComponentError

source§

impl Hash for QueryOneError

source§

impl Hash for ColorType

source§

impl Hash for ExtendedColorType

source§

impl Hash for ImageFormatHint

source§

impl Hash for LimitErrorKind

source§

impl Hash for ParameterErrorKind

source§

impl Hash for UnsupportedErrorKind

source§

impl Hash for image::flat::Error

source§

impl Hash for NormalForm

source§

impl Hash for ImageFormat

source§

impl Hash for WhenToStart

source§

impl Hash for OutputDestination

source§

impl Hash for PlaybackState

source§

impl Hash for StartTime

source§

impl Hash for EqFilterKind

source§

impl Hash for TrackId

source§

impl Hash for Level

source§

impl Hash for LevelFilter

source§

impl Hash for RecursiveMode

source§

impl Hash for WatcherKind

source§

impl Hash for AccessKind

source§

impl Hash for AccessMode

source§

impl Hash for CreateKind

source§

impl Hash for DataChange

source§

impl Hash for EventKind

source§

impl Hash for Flag

source§

impl Hash for MetadataKind

source§

impl Hash for ModifyKind

source§

impl Hash for RemoveKind

source§

impl Hash for RenameMode

source§

impl Hash for SpinStrategy

source§

impl Hash for Ime

source§

impl Hash for winit::event::MouseButton

source§

impl Hash for TouchPhase

source§

impl Hash for DeviceEventFilter

source§

impl Hash for WindowType

source§

impl Hash for CursorGrabMode

source§

impl Hash for CursorIcon

source§

impl Hash for ResizeDirection

source§

impl Hash for bool

source§

impl Hash for char

source§

impl Hash for i8

source§

impl Hash for i16

source§

impl Hash for i32

source§

impl Hash for i64

source§

impl Hash for i128

source§

impl Hash for isize

1.29.0 · source§

impl Hash for !

source§

impl Hash for str

source§

impl Hash for u8

source§

impl Hash for u16

source§

impl Hash for u32

source§

impl Hash for u64

source§

impl Hash for u128

source§

impl Hash for ()

source§

impl Hash for usize

1.64.0 · source§

impl Hash for CString

source§

impl Hash for String

1.28.0 · source§

impl Hash for Layout

source§

impl Hash for core::any::TypeId

1.64.0 · source§

impl Hash for CStr

source§

impl Hash for core::fmt::Error

1.33.0 · source§

impl Hash for PhantomPinned

source§

impl Hash for Ipv4Addr

source§

impl Hash for Ipv6Addr

source§

impl Hash for SocketAddrV4

source§

impl Hash for SocketAddrV6

1.34.0 · source§

impl Hash for NonZeroI8

1.34.0 · source§

impl Hash for NonZeroI16

1.34.0 · source§

impl Hash for NonZeroI32

1.34.0 · source§

impl Hash for NonZeroI64

1.34.0 · source§

impl Hash for NonZeroI128

1.34.0 · source§

impl Hash for NonZeroIsize

1.28.0 · source§

impl Hash for NonZeroU8

1.28.0 · source§

impl Hash for NonZeroU16

1.28.0 · source§

impl Hash for NonZeroU64

1.28.0 · source§

impl Hash for NonZeroU128

1.28.0 · source§

impl Hash for NonZeroUsize

source§

impl Hash for RangeFull

source§

impl Hash for Alignment

source§

impl Hash for OsStr

source§

impl Hash for OsString

1.1.0 · source§

impl Hash for FileType

source§

impl Hash for UCred

source§

impl Hash for PathBuf

source§

impl Hash for PrefixComponent<'_>

1.19.0 · source§

impl Hash for ThreadId

1.8.0 · source§

impl Hash for SystemTime

source§

impl Hash for KeyboardShortcut

source§

impl Hash for Modifiers

source§

impl Hash for Id

source§

impl Hash for LayerId

source§

impl Hash for egui::util::id_type_map::TypeId

source§

impl Hash for ViewportId

source§

impl Hash for ViewportIdPair

source§

impl Hash for Stroke

source§

impl Hash for FontId

source§

impl Hash for LayoutJob

source§

impl Hash for LayoutSection

source§

impl Hash for TextFormat

source§

impl Hash for TextWrapping

source§

impl Hash for epaint::texture_handle::TextureHandle

source§

impl Hash for TextureOptions

source§

impl Hash for AllocId

source§

impl Hash for AllocatorOptions

source§

impl Hash for Font

source§

impl Hash for GlyphRasterConfig

source§

impl Hash for BVec2

source§

impl Hash for BVec3

source§

impl Hash for BVec4

source§

impl Hash for BVec3A

source§

impl Hash for BVec4A

source§

impl Hash for IVec3

source§

impl Hash for IVec4

source§

impl Hash for I64Vec2

source§

impl Hash for I64Vec3

source§

impl Hash for I64Vec4

source§

impl Hash for UVec3

source§

impl Hash for UVec4

source§

impl Hash for U64Vec2

source§

impl Hash for U64Vec3

source§

impl Hash for U64Vec4

source§

impl Hash for BatchIncomplete

source§

impl Hash for MissingComponent

source§

impl Hash for SampleLayout

source§

impl Hash for LimitSupport

source§

impl Hash for Limits

source§

impl Hash for image::math::rect::Rect

source§

impl Hash for ClockId

source§

impl Hash for ClockTime

source§

impl Hash for MockBackendSettings

source§

impl Hash for Capacities

source§

impl Hash for ModulatorId

source§

impl Hash for EmitterId

source§

impl Hash for ListenerId

source§

impl Hash for SpatialSceneId

source§

impl Hash for SubTrackId

source§

impl Hash for Config

source§

impl Hash for Event

source§

impl Hash for SpinSleeper

source§

impl Hash for DeviceId

source§

impl Hash for ModifiersState

source§

impl Hash for VideoMode

source§

impl Hash for WindowButtons

source§

impl Hash for WindowId

source§

impl Hash for UserData

1.3.0 · source§

impl Hash for comfy_core::Duration

source§

impl Hash for Entity

source§

impl Hash for FontHandle

source§

impl Hash for IVec2

source§

impl Hash for Index

1.8.0 · source§

impl Hash for Instant

source§

impl Hash for KeyboardInput

1.28.0 · source§

impl Hash for NonZeroU32

source§

impl Hash for Path

source§

impl Hash for SemanticVer

source§

impl Hash for ShaderId

source§

impl Hash for Sound

source§

impl Hash for UVec2

§

impl Hash for Access

§

impl Hash for Action

§

impl Hash for Addr

§

impl Hash for AddressSize

§

impl Hash for Align

§

impl Hash for Align2

§

impl Hash for AndroidDisplayHandle

§

impl Hash for AndroidNdkWindowHandle

§

impl Hash for AppKitDisplayHandle

§

impl Hash for AppKitWindowHandle

§

impl Hash for Architecture

§

impl Hash for ArchiveKind

§

impl Hash for ArenaFull

§

impl Hash for AudioTstampType

§

impl Hash for BigEndian

§

impl Hash for BigEndian

§

impl Hash for BigEndian

§

impl Hash for BinaryFormat

§

impl Hash for BlockDescription

§

impl Hash for BlockIndex

§

impl Hash for BlockType

§

impl Hash for BoolVector2D

§

impl Hash for BoolVector3D

§

impl Hash for ChannelDescription

§

impl Hash for ChannelList

§

impl Hash for Channels

§

impl Hash for ChmapPosition

§

impl Hash for ChmapType

§

impl Hash for ChunkType

§

impl Hash for CodecType

§

impl Hash for Color32

§

impl Hash for ColorTransform

§

impl Hash for ComdatKind

§

impl Hash for CompressedFileRange

§

impl Hash for CompressionFormat

§

impl Hash for CompressionLevel

§

impl Hash for CompressionStrategy

§

impl Hash for Connect

§

impl Hash for ControlModes

§

impl Hash for DataFormat

§

impl Hash for DebugTypeSignature

§

impl Hash for Direction

§

impl Hash for Dl_info

§

impl Hash for DrmDisplayHandle

§

impl Hash for DrmWindowHandle

§

impl Hash for DupFlags

§

impl Hash for Duration

§

impl Hash for DwAccess

§

impl Hash for DwAddr

§

impl Hash for DwAt

§

impl Hash for DwAte

§

impl Hash for DwCc

§

impl Hash for DwCfa

§

impl Hash for DwChildren

§

impl Hash for DwDefaulted

§

impl Hash for DwDs

§

impl Hash for DwDsc

§

impl Hash for DwEhPe

§

impl Hash for DwEnd

§

impl Hash for DwForm

§

impl Hash for DwId

§

impl Hash for DwIdx

§

impl Hash for DwInl

§

impl Hash for DwLang

§

impl Hash for DwLle

§

impl Hash for DwLnct

§

impl Hash for DwLne

§

impl Hash for DwLns

§

impl Hash for DwMacro

§

impl Hash for DwOp

§

impl Hash for DwOrd

§

impl Hash for DwRle

§

impl Hash for DwSect

§

impl Hash for DwSectV2

§

impl Hash for DwTag

§

impl Hash for DwUt

§

impl Hash for DwVirtuality

§

impl Hash for DwVis

§

impl Hash for DwoId

§

impl Hash for ElemIface

§

impl Hash for ElemType

§

impl Hash for Elf32_Chdr

§

impl Hash for Elf32_Ehdr

§

impl Hash for Elf32_Phdr

§

impl Hash for Elf32_Shdr

§

impl Hash for Elf32_Sym

§

impl Hash for Elf64_Chdr

§

impl Hash for Elf64_Ehdr

§

impl Hash for Elf64_Phdr

§

impl Hash for Elf64_Shdr

§

impl Hash for Elf64_Sym

§

impl Hash for Encoding

§

impl Hash for Encoding

§

impl Hash for Endianness

§

impl Hash for EnvironmentMap

§

impl Hash for Errno

§

impl Hash for EvCtrl

§

impl Hash for EvNote

§

impl Hash for EvResult

§

impl Hash for EventMask

§

impl Hash for EventType

§

impl Hash for ExtraXYZ

§

impl Hash for ExtraZXZ

§

impl Hash for ExtraZYX

§

impl Hash for FdFlags

§

impl Hash for FileFlags

§

impl Hash for FileKind

§

impl Hash for FileTime

§

impl Hash for Flags

§

impl Hash for Format

§

impl Hash for Format

§

impl Hash for GbmDisplayHandle

§

impl Hash for GbmWindowHandle

§

impl Hash for GlyphClass

§

impl Hash for GlyphId

§

impl Hash for GlyphId

§

impl Hash for GlyphId

§

impl Hash for HaikuDisplayHandle

§

impl Hash for HaikuWindowHandle

§

impl Hash for Handle

§

impl Hash for HostId

§

impl Hash for ImportType

§

impl Hash for InputModes

§

impl Hash for InputStreamTimestamp

§

impl Hash for InsertWithKeyError

§

impl Hash for IntegerBounds

§

impl Hash for IntraXYZ

§

impl Hash for IntraZXZ

§

impl Hash for IntraZYX

§

impl Hash for InvalidFont

§

impl Hash for Key

§

impl Hash for KeyCode

§

impl Hash for LevelMode

§

impl Hash for LineEncoding

§

impl Hash for LineIndex

§

impl Hash for LineOrder

§

impl Hash for LittleEndian

§

impl Hash for LittleEndian

§

impl Hash for LittleEndian

§

impl Hash for LocalModes

§

impl Hash for MZError

§

impl Hash for MZFlush

§

impl Hash for MZStatus

§

impl Hash for MilliBel

§

impl Hash for ObjectKind

§

impl Hash for Opcode

§

impl Hash for OpenErrorKind

§

impl Hash for OptionalActions

§

impl Hash for OrbitalDisplayHandle

§

impl Hash for OrbitalWindowHandle

§

impl Hash for OutputModes

§

impl Hash for OutputStreamTimestamp

§

impl Hash for Permissions

§

impl Hash for Pid

§

impl Hash for PortCap

§

impl Hash for PortType

§

impl Hash for QueueSelector

§

impl Hash for Range

§

impl Hash for RawDisplayHandle

§

impl Hash for RawWindowHandle

§

impl Hash for ReadWriteFlags

§

impl Hash for Register

§

impl Hash for RelocationEncoding

§

impl Hash for RelocationKind

§

impl Hash for RelocationTarget

§

impl Hash for Remove

§

impl Hash for Requirements

§

impl Hash for Rgba

§

impl Hash for RoundingMode

§

impl Hash for RunTimeEndian

§

impl Hash for SampleType

§

impl Hash for ScriptMetrics

§

impl Hash for ScriptMetrics

§

impl Hash for SectionFlags

§

impl Hash for SectionId

§

impl Hash for SectionIndex

§

impl Hash for SectionKind

§

impl Hash for SegmentFlags

§

impl Hash for SelemChannelId

§

impl Hash for State

§

impl Hash for StreamInstant

§

impl Hash for StreamResult

§

impl Hash for Style

§

impl Hash for Style

§

impl Hash for SymbolIndex

§

impl Hash for SymbolKind

§

impl Hash for SymbolScope

§

impl Hash for SymbolSection

§

impl Hash for SysInfo

§

impl Hash for TDEFLFlush

§

impl Hash for TDEFLStatus

§

impl Hash for TINFLStatus

§

impl Hash for Tag

§

impl Hash for Tag

§

impl Hash for Text

§

impl Hash for TileCoordinates

§

impl Hash for TileDescription

§

impl Hash for TileIndices

§

impl Hash for TimeCode

§

impl Hash for TimeSpec

§

impl Hash for TimeVal

§

impl Hash for Token

§

impl Hash for Transformations

§

impl Hash for TstampType

§

impl Hash for UiKitDisplayHandle

§

impl Hash for UiKitWindowHandle

§

impl Hash for UnknownUnit

§

impl Hash for UnsupportedFeature

§

impl Hash for ValidationOptions

§

impl Hash for WatchDescriptor

§

impl Hash for WatchMask

§

impl Hash for WaylandDisplayHandle

§

impl Hash for WaylandWindowHandle

§

impl Hash for WebDisplayHandle

§

impl Hash for WebWindowHandle

§

impl Hash for Weight

§

impl Hash for Weight

§

impl Hash for Width

§

impl Hash for Width

§

impl Hash for Win32WindowHandle

§

impl Hash for WinRtWindowHandle

§

impl Hash for WindowHandle<'_>

§

impl Hash for WindowsDisplayHandle

§

impl Hash for XcbDisplayHandle

§

impl Hash for XcbWindowHandle

§

impl Hash for XlibDisplayHandle

§

impl Hash for XlibWindowHandle

§

impl Hash for __c_anonymous_ifru_map

§

impl Hash for __c_anonymous_ptrace_syscall_info_data

§

impl Hash for __c_anonymous_ptrace_syscall_info_entry

§

impl Hash for __c_anonymous_ptrace_syscall_info_exit

§

impl Hash for __c_anonymous_ptrace_syscall_info_seccomp

§

impl Hash for __c_anonymous_sockaddr_can_j1939

§

impl Hash for __c_anonymous_sockaddr_can_tp

§

impl Hash for __exit_status

§

impl Hash for __timeval

§

impl Hash for _libc_fpstate

§

impl Hash for _libc_fpxreg

§

impl Hash for _libc_xmmreg

§

impl Hash for addrinfo

§

impl Hash for af_alg_iv

§

impl Hash for aiocb

§

impl Hash for arpd_request

§

impl Hash for arphdr

§

impl Hash for arpreq

§

impl Hash for arpreq_old

§

impl Hash for can_filter

§

impl Hash for clone_args

§

impl Hash for cmsghdr

§

impl Hash for cpu_set_t

§

impl Hash for dirent

§

impl Hash for dirent64

§

impl Hash for dl_phdr_info

§

impl Hash for dqblk

§

impl Hash for epoll_event

§

impl Hash for fanotify_event_metadata

§

impl Hash for fanotify_response

§

impl Hash for fd_set

§

impl Hash for ff_condition_effect

§

impl Hash for ff_constant_effect

§

impl Hash for ff_effect

§

impl Hash for ff_envelope

§

impl Hash for ff_periodic_effect

§

impl Hash for ff_ramp_effect

§

impl Hash for ff_replay

§

impl Hash for ff_rumble_effect

§

impl Hash for ff_trigger

§

impl Hash for file_clone_range

§

impl Hash for flock

§

impl Hash for flock64

§

impl Hash for fsconfig_command

§

impl Hash for fsid_t

§

impl Hash for genlmsghdr

§

impl Hash for glob64_t

§

impl Hash for glob_t

§

impl Hash for group

§

impl Hash for hostent

§

impl Hash for hwtstamp_config

§

impl Hash for if_nameindex

§

impl Hash for ifaddrs

§

impl Hash for in6_addr

§

impl Hash for in6_ifreq

§

impl Hash for in6_pktinfo

§

impl Hash for in6_rtmsg

§

impl Hash for in_addr

§

impl Hash for in_pktinfo

§

impl Hash for inotify_event

§

impl Hash for input_absinfo

§

impl Hash for input_event

§

impl Hash for input_id

§

impl Hash for input_keymap_entry

§

impl Hash for input_mask

§

impl Hash for iovec

§

impl Hash for ip_mreq

§

impl Hash for ip_mreq_source

§

impl Hash for ip_mreqn

§

impl Hash for ipc_perm

§

impl Hash for ipv6_mreq

§

impl Hash for itimerspec

§

impl Hash for itimerval

§

impl Hash for j1939_filter

§

impl Hash for lconv

§

impl Hash for linger

§

impl Hash for mallinfo

§

impl Hash for mallinfo2

§

impl Hash for mcontext_t

§

impl Hash for membarrier_cmd

§

impl Hash for membarrier_cmd_flag

§

impl Hash for mmsghdr

§

impl Hash for mntent

§

impl Hash for mq_attr

§

impl Hash for msghdr

§

impl Hash for msginfo

§

impl Hash for msqid_ds

§

impl Hash for nl_mmap_hdr

§

impl Hash for nl_mmap_req

§

impl Hash for nl_pktinfo

§

impl Hash for nlattr

§

impl Hash for nlmsgerr

§

impl Hash for nlmsghdr

§

impl Hash for ntptimeval

§

impl Hash for open_how

§

impl Hash for option

§

impl Hash for packet_mreq

§

impl Hash for passwd

§

impl Hash for pollfd

§

impl Hash for posix_spawn_file_actions_t

§

impl Hash for posix_spawnattr_t

§

impl Hash for protoent

§

impl Hash for pthread_attr_t

§

impl Hash for pthread_barrier_t

§

impl Hash for pthread_barrierattr_t

§

impl Hash for pthread_cond_t

§

impl Hash for pthread_condattr_t

§

impl Hash for pthread_mutex_t

§

impl Hash for pthread_mutexattr_t

§

impl Hash for pthread_rwlock_t

§

impl Hash for pthread_rwlockattr_t

§

impl Hash for ptrace_peeksiginfo_args

§

impl Hash for ptrace_rseq_configuration

§

impl Hash for ptrace_syscall_info

§

impl Hash for regex_t

§

impl Hash for regmatch_t

§

impl Hash for rlimit

§

impl Hash for rlimit64

§

impl Hash for rtentry

§

impl Hash for rusage

§

impl Hash for sched_param

§

impl Hash for sctp_authinfo

§

impl Hash for sctp_initmsg

§

impl Hash for sctp_nxtinfo

§

impl Hash for sctp_prinfo

§

impl Hash for sctp_rcvinfo

§

impl Hash for sctp_sndinfo

§

impl Hash for sctp_sndrcvinfo

§

impl Hash for seccomp_data

§

impl Hash for seccomp_notif_sizes

§

impl Hash for sem_t

§

impl Hash for sembuf

§

impl Hash for semid_ds

§

impl Hash for seminfo

§

impl Hash for servent

§

impl Hash for shmid_ds

§

impl Hash for sigaction

§

impl Hash for sigevent

§

impl Hash for siginfo_t

§

impl Hash for signalfd_siginfo

§

impl Hash for sigset_t

§

impl Hash for sigval

§

impl Hash for sock_extended_err

§

impl Hash for sock_filter

§

impl Hash for sock_fprog

§

impl Hash for sockaddr

§

impl Hash for sockaddr_alg

§

impl Hash for sockaddr_in

§

impl Hash for sockaddr_in6

§

impl Hash for sockaddr_ll

§

impl Hash for sockaddr_nl

§

impl Hash for sockaddr_storage

§

impl Hash for sockaddr_un

§

impl Hash for sockaddr_vm

§

impl Hash for spwd

§

impl Hash for stack_t

§

impl Hash for stat

§

impl Hash for stat64

§

impl Hash for statfs

§

impl Hash for statfs64

§

impl Hash for statvfs

§

impl Hash for statvfs64

§

impl Hash for statx

§

impl Hash for statx_timestamp

§

impl Hash for sysinfo

§

impl Hash for termios

§

impl Hash for termios2

§

impl Hash for timespec

§

impl Hash for timeval

§

impl Hash for timex

§

impl Hash for tm

§

impl Hash for tms

§

impl Hash for ucontext_t

§

impl Hash for ucred

§

impl Hash for uinput_abs_setup

§

impl Hash for uinput_ff_erase

§

impl Hash for uinput_ff_upload

§

impl Hash for uinput_setup

§

impl Hash for uinput_user_dev

§

impl Hash for user

§

impl Hash for user_fpregs_struct

§

impl Hash for user_regs_struct

§

impl Hash for utimbuf

§

impl Hash for utmpx

§

impl Hash for utsname

§

impl Hash for winsize

source§

impl<'a> Hash for Component<'a>

source§

impl<'a> Hash for Prefix<'a>

1.10.0 · source§

impl<'a> Hash for Location<'a>

source§

impl<'a> Hash for Metadata<'a>

source§

impl<'a> Hash for MetadataBuilder<'a>

§

impl<'a> Hash for DisplayHandle<'a>

§

impl<'data> Hash for CompressedData<'data>

§

impl<'data> Hash for ObjectMapEntry<'data>

§

impl<'data> Hash for SymbolMapName<'data>

§

impl<'input, Endian> Hash for EndianSlice<'input, Endian>
where Endian: Hash + Endianity,

source§

impl<A> Hash for SmallVec<A>
where A: Array, <A as Array>::Item: Hash,

source§

impl<A, B> Hash for EitherOrBoth<A, B>
where A: Hash, B: Hash,

source§

impl<B> Hash for Cow<'_, B>
where B: Hash + ToOwned + ?Sized,

1.55.0 · source§

impl<B, C> Hash for ControlFlow<B, C>
where B: Hash, C: Hash,

source§

impl<Dyn> Hash for DynMetadata<Dyn>
where Dyn: ?Sized,

§

impl<E> Hash for I16Bytes<E>
where E: Hash + Endian,

§

impl<E> Hash for I32Bytes<E>
where E: Hash + Endian,

§

impl<E> Hash for I64Bytes<E>
where E: Hash + Endian,

§

impl<E> Hash for U16Bytes<E>
where E: Hash + Endian,

§

impl<E> Hash for U32Bytes<E>
where E: Hash + Endian,

§

impl<E> Hash for U64Bytes<E>
where E: Hash + Endian,

1.4.0 · source§

impl<F> Hash for F
where F: FnPtr,

source§

impl<Idx> Hash for RangeFrom<Idx>
where Idx: Hash,

1.26.0 · source§

impl<Idx> Hash for RangeInclusive<Idx>
where Idx: Hash,

source§

impl<Idx> Hash for RangeTo<Idx>
where Idx: Hash,

1.26.0 · source§

impl<Idx> Hash for RangeToInclusive<Idx>
where Idx: Hash,

source§

impl<Idx> Hash for comfy_core::Range<Idx>
where Idx: Hash,

source§

impl<K, V, A> Hash for BTreeMap<K, V, A>
where K: Hash, V: Hash, A: Allocator + Clone,

source§

impl<L, R> Hash for Overwritten<L, R>
where L: Hash, R: Hash,

source§

impl<L, R> Hash for Either<L, R>
where L: Hash, R: Hash,

source§

impl<L, R> Hash for Or<L, R>
where L: Hash, R: Hash,

source§

impl<L, R> Hash for BiBTreeMap<L, R>
where L: Hash, R: Hash,

source§

impl<P> Hash for LogicalPosition<P>
where P: Hash,

source§

impl<P> Hash for LogicalSize<P>
where P: Hash,

source§

impl<P> Hash for PhysicalPosition<P>
where P: Hash,

source§

impl<P> Hash for PhysicalSize<P>
where P: Hash,

1.41.0 · source§

impl<P> Hash for Pin<P>
where P: Deref, <P as Deref>::Target: Hash,

source§

impl<P, Container> Hash for ImageBuffer<P, Container>
where P: Hash + Pixel, Container: Hash,

§

impl<R> Hash for Expression<R>
where R: Hash + Reader,

§

impl<R> Hash for LocationListEntry<R>
where R: Hash + Reader,

§

impl<Section, Symbol> Hash for SymbolFlags<Section, Symbol>
where Section: Hash, Symbol: Hash,

§

impl<Storage> Hash for __BindgenBitfieldUnit<Storage>
where Storage: Hash,

§

impl<Storage, Align> Hash for __BindgenBitfieldUnit<Storage, Align>
where Storage: Hash, Align: Hash,

1.36.0 · source§

impl<T> Hash for Poll<T>
where T: Hash,

1.17.0 · source§

impl<T> Hash for Bound<T>
where T: Hash,

source§

impl<T> Hash for Option<T>
where T: Hash,

source§

impl<T> Hash for *const T
where T: ?Sized,

source§

impl<T> Hash for *mut T
where T: ?Sized,

source§

impl<T> Hash for &T
where T: Hash + ?Sized,

source§

impl<T> Hash for &mut T
where T: Hash + ?Sized,

source§

impl<T> Hash for [T]
where T: Hash,

source§

impl<T> Hash for (T₁, T₂, …, Tₙ)
where T: Hash + ?Sized,

This trait is implemented for tuples up to twelve items long.

1.19.0 · source§

impl<T> Hash for Reverse<T>
where T: Hash,

source§

impl<T> Hash for PhantomData<T>
where T: ?Sized,

1.20.0 · source§

impl<T> Hash for ManuallyDrop<T>
where T: Hash + ?Sized,

1.21.0 · source§

impl<T> Hash for Discriminant<T>

1.74.0 · source§

impl<T> Hash for Saturating<T>
where T: Hash,

source§

impl<T> Hash for Wrapping<T>
where T: Hash,

1.25.0 · source§

impl<T> Hash for NonNull<T>
where T: ?Sized,

source§

impl<T> Hash for epaint::util::ordered_float::OrderedFloat<T>
where T: Float,

source§

impl<T> Hash for Luma<T>
where T: Hash,

source§

impl<T> Hash for LumaA<T>
where T: Hash,

source§

impl<T> Hash for Rgb<T>
where T: Hash,

source§

impl<T> Hash for image::color::Rgba<T>
where T: Hash,

source§

impl<T> Hash for Ratio<T>
where T: Clone + Integer + Hash,

source§

impl<T> Hash for NotNan<T>
where T: Float,

source§

impl<T> Hash for EventLoopClosed<T>
where T: Hash,

source§

impl<T> Hash for Complex<T>
where T: Hash,

source§

impl<T> Hash for comfy_core::OrderedFloat<T>
where T: Float,

§

impl<T> Hash for Angle<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 DebugAbbrevOffset<T>
where T: Hash,

§

impl<T> Hash for DebugFrameOffset<T>
where T: Hash,

§

impl<T> Hash for DebugInfoOffset<T>
where T: Hash,

§

impl<T> Hash for DebugMacinfoOffset<T>
where T: Hash,

§

impl<T> Hash for DebugMacroOffset<T>
where T: Hash,

§

impl<T> Hash for DebugTypesOffset<T>
where T: Hash,

§

impl<T> Hash for EhFrameOffset<T>
where T: Hash,

§

impl<T> Hash for EvQueueControl<T>
where T: Hash,

§

impl<T> Hash for LocationListsOffset<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 RangeListsOffset<T>
where T: Hash,

§

impl<T> Hash for RawRangeListsOffset<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 Unalign<T>
where T: Unaligned + Hash,

§

impl<T> Hash for UnitOffset<T>
where T: Hash,

§

impl<T> Hash for UnitSectionOffset<T>
where T: Hash,

§

impl<T> Hash for Vec2<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,

source§

impl<T, A> Hash for Box<T, A>
where T: Hash + ?Sized, A: Allocator,

source§

impl<T, A> Hash for BTreeSet<T, A>
where T: Hash, A: Allocator + Clone,

source§

impl<T, A> Hash for LinkedList<T, A>
where T: Hash, A: Allocator,

source§

impl<T, A> Hash for Vec<T, A>
where T: Hash, A: Allocator,

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));
source§

impl<T, A> Hash for Arc<T, A>
where T: Hash + ?Sized, A: Allocator,

source§

impl<T, A> Hash for Rc<T, A>
where T: Hash + ?Sized, A: Allocator,

source§

impl<T, A> Hash for VecDeque<T, A>
where T: Hash, A: Allocator,

§

impl<T, B> Hash for EulerAngles<T, B>
where T: Hash, B: Hash,

source§

impl<T, E> Hash for Result<T, E>
where T: Hash, E: Hash,

§

impl<T, Src, Dst> Hash for RigidTransform3D<T, Src, Dst>
where T: Hash, Src: Hash, Dst: Hash,

§

impl<T, Src, Dst> Hash for Rotation2D<T, Src, Dst>
where T: Hash,

§

impl<T, Src, Dst> Hash for Rotation3D<T, Src, Dst>
where T: Hash,

§

impl<T, Src, Dst> Hash for Scale<T, Src, Dst>
where T: Hash,

§

impl<T, Src, Dst> Hash for Transform2D<T, Src, Dst>
where T: Hash,

§

impl<T, Src, Dst> Hash for Transform3D<T, Src, Dst>
where T: Hash,

§

impl<T, Src, Dst> Hash for Translation2D<T, Src, Dst>
where T: Hash,

§

impl<T, Src, Dst> Hash for Translation3D<T, Src, Dst>
where T: Hash,

§

impl<T, U> Hash for Box2D<T, U>
where T: Hash,

§

impl<T, U> Hash for Box3D<T, U>
where T: Hash,

§

impl<T, U> Hash for HomogeneousVector<T, U>
where T: Hash,

§

impl<T, U> Hash for Length<T, U>
where T: Hash,

§

impl<T, U> Hash for Point2D<T, U>
where T: Hash,

§

impl<T, U> Hash for Point3D<T, U>
where T: Hash,

§

impl<T, U> Hash for Rect<T, U>
where T: Hash,

§

impl<T, U> Hash for SideOffsets2D<T, U>
where T: Hash,

§

impl<T, U> Hash for Size2D<T, U>
where T: Hash,

§

impl<T, U> Hash for Size3D<T, U>
where T: Hash,

§

impl<T, U> Hash for Vector2D<T, U>
where T: Hash,

§

impl<T, U> Hash for Vector3D<T, U>
where T: Hash,

source§

impl<T, const CAP: usize> Hash for ArrayVec<T, CAP>
where T: Hash,

source§

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));
source§

impl<T, const N: usize> Hash for Simd<T, N>

source§

impl<Y, R> Hash for CoroutineState<Y, R>
where Y: Hash, R: Hash,

source§

impl<const CAP: usize> Hash for ArrayString<CAP>