Crate bones_utils

Source
Expand description

General utilities for Bones meta-engine crates.

Re-exports§

pub use futures_lite as futures;
pub use fxhash;
pub use hashbrown;
pub use parking_lot;

Modules§

alloc
The Rust core allocation and collections library
prelude
The prelude.
rng
A fast but not cryptographically secure PRNG based on Wyrand.

Macros§

smallvec
Creates a SmallVec containing the arguments.

Structs§

Drain
An iterator that removes the items from a SmallVec and yields them by value.
IntoIter
An iterator that consumes a SmallVec and yields its items by value.
LabeledId
A Ulid with a human-readable ascii prefix.
SmallVec
A Vec-like container that can store a small number of elements inline.
Ulid
A Ulid is a unique 128-bit lexicographically sortable identifier
Ustr
A handle representing a string in the global string cache.

Enums§

CollectionAllocErr
Error type for APIs with fallible heap allocation
LabeledIdCreateError
Error creating a LabeledId.
LabledIdParseError
Errors that can happen while parsing a LabeledId.
MaybeOwned
This type provides a way to store data to which you either have a reference to or which you do own.
MaybeOwnedMut
This type is basically the same as MaybeOwned, but works with mutable references.
TurboKind
Enum for determining the kind of PRNG, whether a fast one, or a slow, possibly crypographically secure one.

Constants§

THREAD_RNG
A fast, non-cryptographic, thread-local random number generator powered by turborand.

Traits§

Array
Types that can be used as the backing store for a SmallVec.
ForkableCore
Trait for enabling creating new TurboCore instances from an original instance. Similar to cloning, except forking modifies the state of the original instance in order to provide a new, random state for the forked instance. This allows for creating many randomised instances from a single seed in a deterministic manner.
GenCore
This trait provides the means to easily generate all integer types, provided the main method underpinning this is implemented: GenCore::gen. Once implemented, the rest of the trait provides default implementations for generating all integer types, though it is not recommended to override these.
SecureCore
A marker trait to be applied to anything that implements TurboCore in order to indicate that a PRNG source is cryptographically secure, so being a CSPRNG.
SeededCore
Trait for implementing Seedable PRNGs, requiring that the PRNG implements TurboCore as a baseline. Seeds must be Sized in order to be used as the internal state of a PRNG.
ToSmallVec
Convenience trait for constructing a SmallVec
TurboCore
Base trait for implementing a PRNG. Only one method must be implemented: TurboCore::fill_bytes, which provides the basis for any PRNG, to fill a buffer of bytes with random data.
TurboRand
Extension trait for automatically implementing all TurboRand methods, as long as the struct implements TurboCore & GenCore. All methods are provided as default implementations that build on top of TurboCore and GenCore, and thus are not recommended to be overridden, lest you potentially change the expected outcome of the methods.
UlidExt
Extension trait for Ulid.

Functions§

default
An ergonomic abbreviation for Default::default() to make initializing structs easier. This is especially helpful when combined with “struct update syntax”.
get_short_name
Shortens a type name to remove all module paths.
likely
Hints to the compiler that the branch condition is likely to be true. Returns the value passed to it.
unlikely
Hints to the compiler that the branch condition is unlikely to be true. Returns the value passed to it.
ustr
Create a new Ustr from the given &str.

Type Aliases§

HashMap
A HashMap implementing aHash, a high speed keyed hashing algorithm intended for use in in-memory hashmaps.
HashSet
A HashSet implementing aHash, a high speed keyed hashing algorithm intended for use in in-memory hashmaps.
UstrMap
A standard HashMap using Ustr as the key type with a custom Hasher that just uses the precomputed hash for speed instead of calculating it
UstrSet
A standard HashSet using Ustr as the key type with a custom Hasher that just uses the precomputed hash for speed instead of calculating it

Derive Macros§

Deref
Derive macro for deriving Deref on structs with one field.
DerefMut
Derive macro for deriving DerefMut on structs with one field.