Module bevy_internal::utils
source · Expand description
Various miscellaneous utilities for easing development
Modules
- Utilities for working with
Future
s. - This crate is a Rust port of Google’s high-performance SwissTable hash map, adapted to make it a drop-in replacement for Rust’s standard
HashMap
andHashSet
types. - Provides types used to statically intern immutable values.
- Traits used by label implementations
petgraph
is a graph data structure library.- Small vectors in various sizes. These store a certain number of elements inline, and fall back to the heap for larger allocations. This can be a useful optimization for improving cache locality and reducing allocator traffic for workloads that fit within the inline buffer.
- A reimplementation of the currently unstable
std::sync::Exclusive
- A reimplementation of the currently unstable
std::cell::SyncUnsafeCell
- A scoped, structured logging and diagnostics system.
- UUID utilities.
Macros
- Helper macro to generate tuple pyramids. Useful to generate scaffolding to work around Rust lacking variadics. Invoking
all_tuples!(impl_foo, start, end, P, Q, ..)
invokesimpl_foo
providing ident tuples through aritystart..=end
. - Call
debug!
once per call site. - Macro to define a new label trait
- Like
tracing::trace
, but conditional on cargo featuredetailed_trace
. - Call
error!
once per call site. - Call
info!
once per call site. - Call some expression only once per call site.
- Call
trace!
once per call site. - Call
warn!
once per call site.
Structs
- A
Hasher
for hashing an arbitrary stream of bytes. - A
Duration
type to represent a span of time, typically used for system timeouts. - A hasher builder that will create a fixed hasher.
- A pre-hashed value of a specific type. Pre-hashing enables memoization of hashes that are expensive to compute. It also enables faster
PartialEq
comparisons by short circuiting on hash equality. SeePassHash
andPassHasher
for a “pass through”BuildHasher
andHasher
implementation designed to work withHashed
SeePreHashMap
for a hashmap pre-configured to useHashed
keys. - A measurement of a monotonically nondecreasing clock. Opaque and useful only with
Duration
. BuildHasher
forTypeId
s.- A type which calls a function when dropped. This can be used to ensure that cleanup code is run even in case of a panic.
- A
BuildHasher
that results in aPassHasher
. - A no-op hash that only works on
u64
s. Will panic if attempting to hash a type containing non-u64 fields. - A measurement of the system clock, useful for talking to external entities like the file system or other processes.
- An error returned from the
duration_since
andelapsed
methods onSystemTime
, used to learn how far in the opposite direction a system time lies. - An error which can be returned when converting a floating-point value of seconds into a
Duration
. - A Universally Unique Identifier (UUID).
Enums
- Much like a
Cow
, but owned values are Arc-ed to make clones cheap. This should be used for values that are cloned for use across threads and change rarely (if ever).
Traits
- Extension methods intended to add functionality to
PreHashMap
.
Functions
- Calls the
tracing::debug!
macro on a value. - An ergonomic abbreviation for
Default::default()
to make initializing structs easier. This is especially helpful when combined with “struct update syntax”. - Shortens a type name to remove all module paths.
- Calls the
tracing::info!
macro on a value.
Type Aliases
- An owned and dynamically typed Future used when you can’t statically type your result or need to add some indirection.
- A shortcut alias for
hashbrown::hash_map::Entry
. - A
HashMap
implementing aHash, a high speed keyed hashing algorithm intended for use in in-memory hashmaps. - A
HashSet
implementing aHash, a high speed keyed hashing algorithm intended for use in in-memory hashmaps. - StableHashMapDeprecatedA stable hash map implementing aHash, a high speed keyed hashing algorithm intended for use in in-memory hashmaps.
- StableHashSetDeprecatedA stable hash set implementing aHash, a high speed keyed hashing algorithm intended for use in in-memory hashmaps.
- A specialized hashmap type with Key of
TypeId
Iteration order only depends on the order of insertions and deletions.