
# Objective - Contributes to #16877 ## Solution - Moved `hashbrown`, `foldhash`, and related types out of `bevy_utils` and into `bevy_platform_support` - Refactored the above to match the layout of these types in `std`. - Updated crates as required. ## Testing - CI --- ## Migration Guide - The following items were moved out of `bevy_utils` and into `bevy_platform_support::hash`: - `FixedState` - `DefaultHasher` - `RandomState` - `FixedHasher` - `Hashed` - `PassHash` - `PassHasher` - `NoOpHash` - The following items were moved out of `bevy_utils` and into `bevy_platform_support::collections`: - `HashMap` - `HashSet` - `bevy_utils::hashbrown` has been removed. Instead, import from `bevy_platform_support::collections` _or_ take a dependency on `hashbrown` directly. - `bevy_utils::Entry` has been removed. Instead, import from `bevy_platform_support::collections::hash_map` or `bevy_platform_support::collections::hash_set` as appropriate. - All of the above equally apply to `bevy::utils` and `bevy::platform_support`. ## Notes - I left `PreHashMap`, `PreHashMapExt`, and `TypeIdMap` in `bevy_utils` as they might be candidates for micro-crating. They can always be moved into `bevy_platform_support` at a later date if desired.
49 lines
1.4 KiB
Rust
49 lines
1.4 KiB
Rust
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
|
|
#![doc(
|
|
html_logo_url = "https://bevyengine.org/assets/icon.png",
|
|
html_favicon_url = "https://bevyengine.org/assets/icon.png"
|
|
)]
|
|
#![no_std]
|
|
|
|
//! Platform compatibility support for first-party [Bevy] engine crates.
|
|
//!
|
|
//! [Bevy]: https://bevyengine.org/
|
|
|
|
#[cfg(feature = "std")]
|
|
extern crate std;
|
|
|
|
#[cfg(feature = "alloc")]
|
|
extern crate alloc;
|
|
|
|
pub mod hash;
|
|
pub mod sync;
|
|
pub mod time;
|
|
|
|
#[cfg(feature = "alloc")]
|
|
pub mod collections;
|
|
|
|
/// Frequently used items which would typically be included in most contexts.
|
|
///
|
|
/// When adding `no_std` support to a crate for the first time, often there's a substantial refactor
|
|
/// required due to the change in implicit prelude from `std::prelude` to `core::prelude`.
|
|
/// This unfortunately leaves out many items from `alloc`, even if the crate unconditionally
|
|
/// includes that crate.
|
|
///
|
|
/// This prelude aims to ease the transition by re-exporting items from `alloc` which would
|
|
/// otherwise be included in the `std` implicit prelude.
|
|
pub mod prelude {
|
|
#[cfg(feature = "alloc")]
|
|
pub use alloc::{
|
|
borrow::ToOwned, boxed::Box, format, string::String, string::ToString, vec, vec::Vec,
|
|
};
|
|
|
|
// Items from `std::prelude` that are missing in this module:
|
|
// * dbg
|
|
// * eprint
|
|
// * eprintln
|
|
// * is_x86_feature_detected
|
|
// * print
|
|
// * println
|
|
// * thread_local
|
|
}
|