Open
Description
What problem does this solve or what need does it fill?
bevy_utils
is a collection of unrelated utilities for Bevy. Utility modules/classes/libraries are generally frowned upon in the programming community since they are most likely a sign of poor organization.
What solution would you like?
Move bevy_utils
's contents into existing bevy crates or into separate crates.
Long list of what to do with each item in bevy_utils
-
BoxedFuture
could probably be removed since async in traits were added in Rust 1.75 - all
HashMap
related stuff: no idea where to put that. - Move
EntityHash
related types intobevy_ecs
#11498 -
OnDrop
could be its own crate -
tracing
related stuff: put inbevy_log
-
once
related stuff: I would put it inbevy_log
, but this could cause some issues (see move once from bevy_log to bevy_utils, to allow for it's use in bevy_ecs #11419) -
get_short_name
: put inbevy_reflect
-
SyncCell
: usestd::sync::Exclusive
when stabilized (Tracking Issue forExclusive
rust-lang/rust#98407) -
SyncUnsafeCell
: usestd::cell::SyncUnsafeCell
when stablized (Tracking Issue for SyncUnsafeCell rust-lang/rust#95439) -
generate_composite_uuid
: Maybe contribute this to theuuid
crate? -
label
module: Sounds like abevy_reflect
thing but isn't actually used anywhere there so idk -
Interned
: put inbevy_ecs
-
futures
module: only used inbevy_render
, so put it there. -
FloatOrd
: could be its own crate -
default
: Could be its own crate (Thedefault
crate already exists, so maybe we should use that) -
CowArc
: Could be its own crate