Trait scrypto_test::prelude::radix_engine_common::prelude::rust::hash::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 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());
Object Safety§
Implementors§
impl Hash for AccountCollection
impl Hash for AccountFeature
impl Hash for AccountField
impl Hash for MetadataCollection
impl Hash for MetadataFeature
impl Hash for MetadataField
impl Hash for RoleAssignmentCollection
impl Hash for RoleAssignmentFeature
impl Hash for RoleAssignmentField
impl Hash for ComponentRoyaltyCollection
impl Hash for ComponentRoyaltyFeature
impl Hash for ComponentRoyaltyField
impl Hash for StaleTreePart
impl Hash for TreeNodeV1
impl Hash for VersionedTreeNode
impl Hash for CreationStrategy
impl Hash for RoyaltyRecipient
impl Hash for scrypto_test::prelude::costing::StorageType
impl Hash for AccessControllerCollection
impl Hash for AccessControllerFeature
impl Hash for AccessControllerField
impl Hash for AccessControllerPartitionOffset
impl Hash for AccessRule
impl Hash for AccessRuleNode
impl Hash for AccountPartitionOffset
impl Hash for AuthZoneField
impl Hash for BlueprintHook
impl Hash for BlueprintPayloadDef
impl Hash for BootLoaderField
impl Hash for ComponentField
impl Hash for ComponentRoyaltyPartitionOffset
impl Hash for ConsensusManagerCollection
impl Hash for ConsensusManagerFeature
impl Hash for ConsensusManagerField
impl Hash for ConsensusManagerPartitionOffset
impl Hash for CurveType
impl Hash for DatabaseUpdate
impl Hash for DefaultDepositRule
impl Hash for Emitter
impl Hash for FungibleBucketField
impl Hash for FungibleProofField
impl Hash for FungibleResourceManagerCollection
impl Hash for FungibleResourceManagerFeature
impl Hash for FungibleResourceManagerField
impl Hash for FungibleResourceManagerPartitionOffset
impl Hash for FungibleVaultCollection
impl Hash for FungibleVaultFeature
impl Hash for FungibleVaultField
impl Hash for FungibleVaultPartitionOffset
impl Hash for LocalRef
impl Hash for MetadataPartitionOffset
impl Hash for MethodAccessibility
impl Hash for MultiResourcePoolPartitionOffset
impl Hash for NonFungibleBucketField
impl Hash for NonFungibleProofField
impl Hash for NonFungibleResourceManagerCollection
impl Hash for NonFungibleResourceManagerFeature
impl Hash for NonFungibleResourceManagerField
impl Hash for NonFungibleResourceManagerGeneric
impl Hash for NonFungibleResourceManagerPartitionOffset
impl Hash for NonFungibleVaultCollection
impl Hash for NonFungibleVaultFeature
impl Hash for NonFungibleVaultField
impl Hash for NonFungibleVaultPartitionOffset
impl Hash for OneResourcePoolPartitionOffset
impl Hash for OwnerRole
impl Hash for OwnerRoleUpdater
impl Hash for PackageCollection
impl Hash for PackageFeature
impl Hash for PackageField
impl Hash for PackagePartitionOffset
impl Hash for ParseError
impl Hash for PartitionDescription
impl Hash for ProofRule
impl Hash for Proposer
impl Hash for ResourceFeature
impl Hash for ResourceOrNonFungible
impl Hash for ResourcePreference
impl Hash for Role
impl Hash for RoleAssignmentPartitionOffset
impl Hash for RoyaltyField
impl Hash for SignatureV1
impl Hash for SignatureWithPublicKeyV1
impl Hash for TransactionTrackerField
impl Hash for TwoResourcePoolPartitionOffset
impl Hash for TypeInfoField
impl Hash for ValidatorCollection
impl Hash for ValidatorFeature
impl Hash for ValidatorField
impl Hash for ValidatorPartitionOffset
impl Hash for WorktopField
impl Hash for AttachedModuleId
impl Hash for ModuleId
impl Hash for PoolV1MinorVersion
impl Hash for MultiResourcePoolCollection
impl Hash for MultiResourcePoolFeature
impl Hash for MultiResourcePoolField
impl Hash for OneResourcePoolCollection
impl Hash for OneResourcePoolFeature
impl Hash for OneResourcePoolField
impl Hash for TwoResourcePoolCollection
impl Hash for TwoResourcePoolFeature
impl Hash for TwoResourcePoolField
impl Hash for EntityType
impl Hash for GenericSubstitution
impl Hash for ManifestAddress
impl Hash for ManifestExpression
impl Hash for ManifestNonFungibleLocalId
impl Hash for NonFungibleIdType
impl Hash for NonFungibleLocalId
impl Hash for scrypto_test::prelude::radix_engine_common::prelude::PublicKey
impl Hash for PublicKeyHash
impl Hash for SubstateKey
impl Hash for LocalTypeId
impl Hash for RustTypeId
impl Hash for scrypto_test::prelude::radix_engine_common::prelude::rust::cmp::Ordering
impl Hash for Infallible
impl Hash for scrypto_test::prelude::radix_engine_common::prelude::rust::sync::atomic::Ordering
impl Hash for AsciiChar
impl Hash for IpAddr
impl Hash for Ipv6MulticastScope
impl Hash for SocketAddr
impl Hash for ErrorKind
impl Hash for Sign
impl Hash for Op
impl Hash for AttrStyle
impl Hash for Meta
impl Hash for NestedMeta
impl Hash for Fields
impl Hash for Visibility
impl Hash for Data
impl Hash for Expr
impl Hash for GenericMethodArgument
impl Hash for Member
impl Hash for RangeLimits
impl Hash for GenericParam
impl Hash for TraitBoundModifier
impl Hash for TypeParamBound
impl Hash for WherePredicate
impl Hash for FnArg
impl Hash for ForeignItem
impl Hash for ImplItem
impl Hash for syn::item::Item
impl Hash for TraitItem
impl Hash for UseTree
impl Hash for Lit
impl Hash for MacroDelimiter
impl Hash for BinOp
impl Hash for UnOp
impl Hash for Pat
impl Hash for GenericArgument
impl Hash for PathArguments
impl Hash for Stmt
impl Hash for ReturnType
impl Hash for syn::ty::Type
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 AccountAuthorizedDepositorKeyPayload
impl Hash for AccountFeatureSet
impl Hash for AccountResourcePreferenceKeyPayload
impl Hash for AccountResourceVaultKeyPayload
impl Hash for AddAuthorizedDepositorEvent
impl Hash for RemoveAuthorizedDepositorEvent
impl Hash for RemoveResourcePreferenceEvent
impl Hash for SetDefaultDepositRuleEvent
impl Hash for SetResourcePreferenceEvent
impl Hash for MetadataEntryKeyPayload
impl Hash for MetadataFeatureSet
impl Hash for RoleAssignmentAccessRuleKeyPayload
impl Hash for RoleAssignmentFeatureSet
impl Hash for ComponentRoyaltyFeatureSet
impl Hash for ComponentRoyaltyMethodAmountKeyPayload
impl Hash for FungibleBucket
impl Hash for TreeChildEntry
impl Hash for TreeInternalNode
impl Hash for TreeLeafNode
impl Hash for Nibble
impl Hash for NibblePath
impl Hash for NodeKey
impl Hash for EventFlags
impl Hash for LockFlags
impl Hash for scrypto_test::prelude::object_api::FieldValue
impl Hash for AccessControllerFeatureSet
impl Hash for BlueprintId
impl Hash for BlueprintVersion
impl Hash for BlueprintVersionKey
impl Hash for Bucket
impl Hash for CanonicalBlueprintId
impl Hash for CodeHash
impl Hash for ConsensusManagerFeatureSet
impl Hash for ConsensusManagerRegisteredValidatorByStakeKeyPayload
impl Hash for DbPartitionKey
impl Hash for DbSortKey
impl Hash for EnabledModules
impl Hash for EventTypeIdentifier
impl Hash for FlashTransactionHash
impl Hash for FungibleProof
impl Hash for FungibleResourceManagerFeatureSet
impl Hash for FungibleVault
impl Hash for FungibleVaultFeatureSet
impl Hash for IntentHash
impl Hash for MethodKey
impl Hash for ModuleRoleKey
impl Hash for NonFungibleBucket
impl Hash for NonFungibleGlobalId
impl Hash for NonFungibleProof
impl Hash for NonFungibleResourceManagerDataKeyPayload
impl Hash for NonFungibleResourceManagerFeatureSet
impl Hash for NonFungibleVault
impl Hash for NonFungibleVaultFeatureSet
impl Hash for NonFungibleVaultNonFungibleKeyPayload
impl Hash for NotarizedTransactionHash
impl Hash for OwnerRoleEntry
impl Hash for PackageBlueprintVersionAuthConfigKeyPayload
impl Hash for PackageBlueprintVersionDefinitionKeyPayload
impl Hash for PackageBlueprintVersionDependenciesKeyPayload
impl Hash for PackageBlueprintVersionRoyaltyConfigKeyPayload
impl Hash for PackageCodeInstrumentedCodeKeyPayload
impl Hash for PackageCodeOriginalCodeKeyPayload
impl Hash for PackageCodeVmTypeKeyPayload
impl Hash for PackageFeatureSet
impl Hash for PackageSchemaKeyPayload
impl Hash for Proof
impl Hash for PublicKeyFingerprint
impl Hash for RawFlashTransaction
impl Hash for RawIntent
impl Hash for RawNotarizedTransaction
impl Hash for RawSignedIntent
impl Hash for RawSystemTransaction
impl Hash for RefTypes
impl Hash for RoleKey
impl Hash for RoleList
impl Hash for SignedIntentHash
impl Hash for SystemTransactionHash
impl Hash for ValidatorFeatureSet
impl Hash for Vault
impl Hash for VaultFreezeFlags
impl Hash for MultiResourcePoolFeatureSet
impl Hash for OneResourcePoolFeatureSet
impl Hash for TwoResourcePoolFeatureSet
impl Hash for scrypto_test::prelude::radix_engine_common::prelude::fmt::Error
impl Hash for String
impl Hash for WellKnownTypeId
impl Hash for Bls12381G1PublicKey
impl Hash for Bls12381G2Signature
impl Hash for BlueprintTypeIdentifier
impl Hash for BytesNonFungibleLocalId
impl Hash for ComponentAddress
impl Hash for Decimal
impl Hash for Ed25519PublicKey
impl Hash for Ed25519PublicKeyHash
impl Hash for Ed25519Signature
impl Hash for Epoch
impl Hash for GlobalAddress
impl Hash for GlobalAddressReservation
impl Hash for Hash
impl Hash for I192
impl Hash for I256
impl Hash for I320
impl Hash for I384
impl Hash for I448
impl Hash for I512
impl Hash for I768
impl Hash for IntegerNonFungibleLocalId
impl Hash for InternalAddress
impl Hash for ManifestAddressReservation
impl Hash for ManifestBlobRef
impl Hash for ManifestBucket
impl Hash for ManifestDecimal
impl Hash for ManifestPreciseDecimal
impl Hash for ManifestProof
impl Hash for NodeId
impl Hash for Own
impl Hash for PackageAddress
impl Hash for PartitionNumber
impl Hash for PartitionOffset
impl Hash for PreciseDecimal
impl Hash for RUIDNonFungibleLocalId
impl Hash for Reference
impl Hash for ResourceAddress
impl Hash for Round
impl Hash for SchemaHash
impl Hash for ScopedTypeId
impl Hash for Secp256k1PublicKey
impl Hash for Secp256k1PublicKeyHash
impl Hash for Secp256k1Signature
impl Hash for StringNonFungibleLocalId
impl Hash for U192
impl Hash for U256
impl Hash for U320
impl Hash for U384
impl Hash for U448
impl Hash for U512
impl Hash for U768
impl Hash for Layout
impl Hash for PhantomPinned
impl Hash for NonZero<i8>
impl Hash for NonZero<i16>
impl Hash for NonZero<i32>
impl Hash for NonZero<i64>
impl Hash for NonZero<i128>
impl Hash for NonZero<isize>
impl Hash for NonZero<u8>
impl Hash for NonZero<u16>
impl Hash for NonZero<u32>
impl Hash for NonZero<u64>
impl Hash for NonZero<u128>
impl Hash for NonZero<usize>
impl Hash for RangeFull
impl Hash for Alignment
impl Hash for CString
impl Hash for core::any::TypeId
impl Hash for CStr
impl Hash for Ipv4Addr
impl Hash for Ipv6Addr
impl Hash for SocketAddrV4
impl Hash for SocketAddrV6
impl Hash for Duration
impl Hash for OsStr
impl Hash for OsString
impl Hash for FileType
impl Hash for UCred
impl Hash for std::path::Path
impl Hash for PathBuf
impl Hash for PrefixComponent<'_>
impl Hash for ThreadId
impl Hash for Instant
impl Hash for SystemTime
impl Hash for CompressedEdwardsY
impl Hash for MontgomeryPoint
impl Hash for CompressedRistretto
impl Hash for Scalar
impl Hash for BigInt
impl Hash for BigUint
impl Hash for Ident
impl Hash for BuildMetadata
impl Hash for Comparator
impl Hash for Prerelease
impl Hash for Version
impl Hash for VersionReq
impl Hash for Number
impl Hash for Attribute
impl Hash for MetaList
impl Hash for MetaNameValue
impl Hash for Field
impl Hash for FieldsNamed
impl Hash for FieldsUnnamed
impl Hash for syn::data::Variant
impl Hash for VisCrate
impl Hash for VisPublic
impl Hash for VisRestricted
impl Hash for DataEnum
impl Hash for DataStruct
impl Hash for DataUnion
impl Hash for DeriveInput
impl Hash for Arm
impl Hash for ExprArray
impl Hash for ExprAssign
impl Hash for ExprAssignOp
impl Hash for ExprAsync
impl Hash for ExprAwait
impl Hash for ExprBinary
impl Hash for ExprBlock
impl Hash for ExprBox
impl Hash for ExprBreak
impl Hash for ExprCall
impl Hash for ExprCast
impl Hash for ExprClosure
impl Hash for ExprContinue
impl Hash for ExprField
impl Hash for ExprForLoop
impl Hash for ExprGroup
impl Hash for ExprIf
impl Hash for ExprIndex
impl Hash for ExprLet
impl Hash for ExprLit
impl Hash for ExprLoop
impl Hash for ExprMacro
impl Hash for ExprMatch
impl Hash for ExprMethodCall
impl Hash for ExprParen
impl Hash for ExprPath
impl Hash for ExprRange
impl Hash for ExprReference
impl Hash for ExprRepeat
impl Hash for ExprReturn
impl Hash for ExprStruct
impl Hash for ExprTry
impl Hash for ExprTryBlock
impl Hash for ExprTuple
impl Hash for ExprType
impl Hash for ExprUnary
impl Hash for ExprUnsafe
impl Hash for ExprWhile
impl Hash for ExprYield
impl Hash for syn::expr::FieldValue
impl Hash for Index
impl Hash for Label
impl Hash for MethodTurbofish
impl Hash for File
impl Hash for BoundLifetimes
impl Hash for ConstParam
impl Hash for Generics
impl Hash for LifetimeDef
impl Hash for PredicateEq
impl Hash for PredicateLifetime
impl Hash for PredicateType
impl Hash for TraitBound
impl Hash for TypeParam
impl Hash for WhereClause
impl Hash for ForeignItemFn
impl Hash for ForeignItemMacro
impl Hash for ForeignItemStatic
impl Hash for ForeignItemType
impl Hash for ImplItemConst
impl Hash for ImplItemMacro
impl Hash for ImplItemMethod
impl Hash for ImplItemType
impl Hash for ItemConst
impl Hash for ItemEnum
impl Hash for ItemExternCrate
impl Hash for ItemFn
impl Hash for ItemForeignMod
impl Hash for ItemImpl
impl Hash for ItemMacro2
impl Hash for ItemMacro
impl Hash for ItemMod
impl Hash for ItemStatic
impl Hash for ItemStruct
impl Hash for ItemTrait
impl Hash for ItemTraitAlias
impl Hash for ItemType
impl Hash for ItemUnion
impl Hash for ItemUse
impl Hash for Receiver
impl Hash for syn::item::Signature
impl Hash for TraitItemConst
impl Hash for TraitItemMacro
impl Hash for TraitItemMethod
impl Hash for TraitItemType
impl Hash for UseGlob
impl Hash for UseGroup
impl Hash for UseName
impl Hash for UsePath
impl Hash for UseRename
impl Hash for Lifetime
impl Hash for LitBool
impl Hash for LitByte
impl Hash for LitByteStr
impl Hash for LitChar
impl Hash for LitFloat
impl Hash for LitInt
impl Hash for LitStr
impl Hash for syn::mac::Macro
impl Hash for Nothing
impl Hash for FieldPat
impl Hash for PatBox
impl Hash for PatIdent
impl Hash for PatLit
impl Hash for PatMacro
impl Hash for PatOr
impl Hash for PatPath
impl Hash for PatRange
impl Hash for PatReference
impl Hash for PatRest
impl Hash for PatSlice
impl Hash for PatStruct
impl Hash for PatTuple
impl Hash for PatTupleStruct
impl Hash for PatType
impl Hash for PatWild
impl Hash for AngleBracketedGenericArguments
impl Hash for Binding
impl Hash for Constraint
impl Hash for ParenthesizedGenericArguments
impl Hash for syn::path::Path
impl Hash for PathSegment
impl Hash for QSelf
impl Hash for Block
impl Hash for Local
impl Hash for Abstract
impl Hash for Add
impl Hash for AddEq
impl Hash for And
impl Hash for AndAnd
impl Hash for AndEq
impl Hash for As
impl Hash for Async
impl Hash for At
impl Hash for Auto
impl Hash for Await
impl Hash for Bang
impl Hash for Become
impl Hash for syn::token::Box
impl Hash for Brace
impl Hash for Bracket
impl Hash for Break
impl Hash for Caret
impl Hash for CaretEq
impl Hash for Colon2
impl Hash for Colon
impl Hash for Comma
impl Hash for Const
impl Hash for Continue
impl Hash for Crate
impl Hash for Default
impl Hash for Div
impl Hash for DivEq
impl Hash for Do
impl Hash for Dollar
impl Hash for Dot2
impl Hash for Dot3
impl Hash for Dot
impl Hash for DotDotEq
impl Hash for Dyn
impl Hash for Else
impl Hash for Enum
impl Hash for Eq
impl Hash for EqEq
impl Hash for Extern
impl Hash for FatArrow
impl Hash for Final
impl Hash for Fn
impl Hash for For
impl Hash for Ge
impl Hash for Group
impl Hash for Gt
impl Hash for If
impl Hash for Impl
impl Hash for In
impl Hash for LArrow
impl Hash for Le
impl Hash for Let
impl Hash for Loop
impl Hash for Lt
impl Hash for syn::token::Macro
impl Hash for syn::token::Match
impl Hash for Mod
impl Hash for Move
impl Hash for MulEq
impl Hash for Mut
impl Hash for Ne
impl Hash for Or
impl Hash for OrEq
impl Hash for OrOr
impl Hash for Override
impl Hash for Paren
impl Hash for Pound
impl Hash for Priv
impl Hash for Pub
impl Hash for Question
impl Hash for RArrow
impl Hash for Ref
impl Hash for Rem
impl Hash for RemEq
impl Hash for Return
impl Hash for SelfType
impl Hash for SelfValue
impl Hash for Semi
impl Hash for Shl
impl Hash for ShlEq
impl Hash for Shr
impl Hash for ShrEq
impl Hash for Star
impl Hash for Static
impl Hash for Struct
impl Hash for Sub
impl Hash for SubEq
impl Hash for Super
impl Hash for Tilde
impl Hash for Trait
impl Hash for Try
impl Hash for syn::token::Type
impl Hash for Typeof
impl Hash for Underscore
impl Hash for Union
impl Hash for Unsafe
impl Hash for Unsized
impl Hash for Use
impl Hash for Virtual
impl Hash for Where
impl Hash for While
impl Hash for Yield
impl Hash for Abi
impl Hash for BareFnArg
impl Hash for TypeArray
impl Hash for TypeBareFn
impl Hash for TypeGroup
impl Hash for TypeImplTrait
impl Hash for TypeInfer
impl Hash for TypeMacro
impl Hash for TypeNever
impl Hash for TypeParen
impl Hash for TypePath
impl Hash for TypePtr
impl Hash for TypeReference
impl Hash for TypeSlice
impl Hash for TypeTraitObject
impl Hash for TypeTuple
impl Hash for Variadic
impl Hash for ATerm
impl Hash for B0
impl Hash for B1
impl Hash for Z0
impl Hash for Equal
impl Hash for Greater
impl Hash for Less
impl Hash for UTerm
impl Hash for uuid::error::Error
impl Hash for Braced
impl Hash for Hyphenated
impl Hash for Simple
impl Hash for Urn
impl Hash for Uuid
impl Hash for Timestamp
impl Hash for All
impl Hash for ArrayType
impl Hash for BLST_ERROR
impl Hash for BigEndian
impl Hash for ComponentTypeRef
impl Hash for ComponentValType
impl Hash for ConstExprKind
impl Hash for Dl_info
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 Error
impl Hash for Error
impl Hash for FuncType
impl Hash for FuncType
impl Hash for GlobalType
impl Hash for GlobalType
impl Hash for GlobalType
impl Hash for HalfMatch
impl Hash for HeapType
impl Hash for HeapType
impl Hash for Ieee32
impl Hash for Ieee32
impl Hash for Ieee64
impl Hash for Ieee64
impl Hash for InvalidParityValue
impl Hash for Item
impl Hash for KebabName
impl Hash for KebabNameKind<'_>
impl Hash for KebabStr
impl Hash for KebabString
impl Hash for KeyPair
impl Hash for KeyPair
impl Hash for LittleEndian
impl Hash for Match
impl Hash for MemoryType
impl Hash for MemoryType
impl Hash for MemoryType
impl Hash for Message
impl Hash for NonMaxUsize
impl Hash for Null
impl Hash for OutOfRangeError
impl Hash for Parity
impl Hash for PatternID
impl Hash for PrimitiveValType
impl Hash for PublicKey
impl Hash for PublicKey
impl Hash for RecoverableSignature
impl Hash for RecoverableSignature
impl Hash for RefType
impl Hash for RefType
impl Hash for ResourceId
impl Hash for SecretKey
impl Hash for SignOnly
impl Hash for Signature
impl Hash for Signature
impl Hash for Signature
impl Hash for SmallIndex
impl Hash for Span
impl Hash for StateID
impl Hash for StorageType
impl Hash for StorageType
impl Hash for TableType
impl Hash for TableType
impl Hash for TableType
impl Hash for Transition
impl Hash for TypeBounds
impl Hash for TypeId
impl Hash for TypeId
impl Hash for V128
impl Hash for V128
impl Hash for ValType
impl Hash for ValType
impl Hash for ValType
impl Hash for Variant
impl Hash for VerifyOnly
impl Hash for WasmFeatures
impl Hash for WasmFeatures
impl Hash for XOnlyPublicKey
impl Hash for XOnlyPublicKey
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 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 iocb
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 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_attr
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
impl Hash for seccomp_notif_addfd
impl Hash for seccomp_notif_resp
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 sockaddr_xdp
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 tls12_crypto_info_aes_gcm_128
impl Hash for tls12_crypto_info_aes_gcm_256
impl Hash for tls12_crypto_info_chacha20_poly1305
impl Hash for tls_crypto_info
impl Hash for tm
impl Hash for tms
impl Hash for u5
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
impl Hash for xdp_desc
impl Hash for xdp_mmap_offsets
impl Hash for xdp_mmap_offsets_v1
impl Hash for xdp_options
impl Hash for xdp_ring_offset
impl Hash for xdp_ring_offset_v1
impl Hash for xdp_statistics
impl Hash for xdp_statistics_v1
impl Hash for xdp_umem_reg
impl Hash for xdp_umem_reg_v1
impl<'a> Hash for Component<'a>
impl<'a> Hash for Prefix<'a>
impl<'a> Hash for Location<'a>
impl<'a> Hash for ImplGenerics<'a>
impl<'a> Hash for Turbofish<'a>
impl<'a> Hash for TypeGenerics<'a>
impl<'a> Hash for BinaryReader<'a>
impl<'a> Hash for BinaryReader<'a>
impl<'buf> Hash for AllPreallocated<'buf>
impl<'buf> Hash for SignOnlyPreallocated<'buf>
impl<'buf> Hash for VerifyOnlyPreallocated<'buf>
impl<A> Hash for SmallVec<A>where
A: Array,
<A as Array>::Item: Hash,
impl<A, B> Hash for EitherOrBoth<A, B>
impl<B> Hash for Cow<'_, B>
impl<B, C> Hash for ControlFlow<B, C>
impl<Dyn> Hash for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<F> Hash for Fwhere
F: FnPtr,
impl<H> Hash for HeaderWithLength<H>where
H: Hash,
impl<H, T> Hash for HeaderSlice<H, T>
impl<H, T> Hash for ThinArc<H, T>
impl<Idx> Hash for Range<Idx>where
Idx: Hash,
impl<Idx> Hash for RangeFrom<Idx>where
Idx: Hash,
impl<Idx> Hash for 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 scrypto_test::prelude::radix_engine_common::prelude::indexmap::map::Slice<K, V>
impl<K, V> Hash for Slice<K, V>
impl<K, V, A> Hash for BTreeMap<K, V, A>
impl<L, R> Hash for Either<L, R>
impl<Ptr> Hash for Pin<Ptr>
impl<T> Hash for Option<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 BurnRoles<T>where
T: Hash,
impl<T> Hash for DepositRoles<T>where
T: Hash,
impl<T> Hash for FreezeRoles<T>where
T: Hash,
impl<T> Hash for MintRoles<T>where
T: Hash,
impl<T> Hash for NonFungibleDataUpdateRoles<T>where
T: Hash,
impl<T> Hash for RecallRoles<T>where
T: Hash,
impl<T> Hash for WithdrawRoles<T>where
T: Hash,
impl<T> Hash for scrypto_test::prelude::radix_engine_common::prelude::indexmap::set::Slice<T>where
T: Hash,
impl<T> Hash for PhantomData<T>where
T: ?Sized,
impl<T> Hash for FullyScopedTypeId<T>
impl<T> Hash for Reverse<T>where
T: Hash,
impl<T> Hash for Discriminant<T>
impl<T> Hash for ManuallyDrop<T>
impl<T> Hash for Saturating<T>where
T: Hash,
impl<T> Hash for Wrapping<T>where
T: Hash,
impl<T> Hash for NonNull<T>where
T: ?Sized,
impl<T> Hash for Arc<T>
impl<T> Hash for CachePadded<T>where
T: Hash,
impl<T> Hash for Slice<T>where
T: Hash,
impl<T, A> Hash for BTreeSet<T, A>
impl<T, A> Hash for scrypto_test::prelude::radix_engine_common::prelude::prelude::Box<T, A>
impl<T, A> Hash for LinkedList<T, A>
impl<T, A> Hash for Rc<T, A>
impl<T, A> Hash for 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 scrypto_test::prelude::radix_engine_common::prelude::rust::sync::Arc<T, A>
impl<T, E> Hash for Result<T, E>
impl<T, N> Hash for GenericArray<T, N>where
T: Hash,
N: ArrayLength<T>,
impl<T, P> Hash for Punctuated<T, P>
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));