refactor(utils): move SyncCell and SyncUnsafeCell to bevy_platform (#19305)

# Objective

- move SyncCell and SyncUnsafeCell to bevy_platform

## Solution

- move SyncCell and SyncUnsafeCell to bevy_platform

## Testing

- cargo clippy works
This commit is contained in:
atlv 2025-05-27 00:57:26 -04:00 committed by GitHub
parent dc6563477d
commit d4985af7cb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 30 additions and 14 deletions

View File

@ -481,7 +481,7 @@ use thiserror::Error;
/// ```
/// # use std::cell::RefCell;
/// # use bevy_ecs::component::Component;
/// use bevy_utils::synccell::SyncCell;
/// use bevy_platform::cell::SyncCell;
///
/// // This will compile.
/// #[derive(Component)]
@ -490,7 +490,7 @@ use thiserror::Error;
/// }
/// ```
///
/// [`SyncCell`]: bevy_utils::synccell::SyncCell
/// [`SyncCell`]: bevy_platform::cell::SyncCell
/// [`Exclusive`]: https://doc.rust-lang.org/nightly/std/sync/struct.Exclusive.html
#[diagnostic::on_unimplemented(
message = "`{Self}` is not a `Component`",

View File

@ -54,7 +54,7 @@ pub use bevy_ecs_macros::Resource;
/// ```
/// # use std::cell::RefCell;
/// # use bevy_ecs::resource::Resource;
/// use bevy_utils::synccell::SyncCell;
/// use bevy_platform::cell::SyncCell;
///
/// #[derive(Resource)]
/// struct ActuallySync {
@ -66,7 +66,7 @@ pub use bevy_ecs_macros::Resource;
/// [`World`]: crate::world::World
/// [`Res`]: crate::system::Res
/// [`ResMut`]: crate::system::ResMut
/// [`SyncCell`]: bevy_utils::synccell::SyncCell
/// [`SyncCell`]: bevy_platform::cell::SyncCell
#[diagnostic::on_unimplemented(
message = "`{Self}` is not a `Resource`",
label = "invalid `Resource`",

View File

@ -1,7 +1,7 @@
use alloc::{boxed::Box, vec::Vec};
use bevy_platform::cell::SyncUnsafeCell;
use bevy_platform::sync::Arc;
use bevy_tasks::{ComputeTaskPool, Scope, TaskPool, ThreadExecutor};
use bevy_utils::syncunsafecell::SyncUnsafeCell;
use concurrent_queue::ConcurrentQueue;
use core::{any::Any, panic::AssertUnwindSafe};
use fixedbitset::FixedBitSet;

View File

@ -1,5 +1,5 @@
use alloc::{boxed::Box, vec::Vec};
use bevy_utils::synccell::SyncCell;
use bevy_platform::cell::SyncCell;
use variadics_please::all_tuples;
use crate::{

View File

@ -4,7 +4,7 @@ use crate::{
system::{Local, SystemMeta, SystemParam, SystemState},
world::World,
};
use bevy_utils::synccell::SyncCell;
use bevy_platform::cell::SyncCell;
use core::marker::PhantomData;
use variadics_please::all_tuples;

View File

@ -23,8 +23,8 @@ use alloc::{
vec::Vec,
};
pub use bevy_ecs_macros::SystemParam;
use bevy_platform::cell::SyncCell;
use bevy_ptr::UnsafeCellDeref;
use bevy_utils::synccell::SyncCell;
use core::{
any::Any,
fmt::{Debug, Display},

View File

@ -15,7 +15,7 @@ mod gilrs_system;
mod rumble;
#[cfg(not(target_arch = "wasm32"))]
use bevy_utils::synccell::SyncCell;
use bevy_platform::cell::SyncCell;
#[cfg(target_arch = "wasm32")]
use core::cell::RefCell;

View File

@ -2,9 +2,9 @@
use crate::{Gilrs, GilrsGamepads};
use bevy_ecs::prelude::{EventReader, Res, ResMut, Resource};
use bevy_input::gamepad::{GamepadRumbleIntensity, GamepadRumbleRequest};
use bevy_platform::cell::SyncCell;
use bevy_platform::collections::HashMap;
use bevy_time::{Real, Time};
use bevy_utils::synccell::SyncCell;
use core::time::Duration;
use gilrs::{
ff::{self, BaseEffect, BaseEffectType, Repeat, Replay},

View File

@ -16,6 +16,7 @@ trace_tracy_memory = ["dep:tracy-client"]
# bevy
bevy_app = { path = "../bevy_app", version = "0.16.0-dev" }
bevy_utils = { path = "../bevy_utils", version = "0.16.0-dev" }
bevy_platform = { path = "../bevy_platform", version = "0.16.0-dev" }
bevy_ecs = { path = "../bevy_ecs", version = "0.16.0-dev" }
# other

View File

@ -64,7 +64,7 @@ use tracing_subscriber::{
#[cfg(feature = "tracing-chrome")]
use {
bevy_ecs::resource::Resource,
bevy_utils::synccell::SyncCell,
bevy_platform::cell::SyncCell,
tracing_subscriber::fmt::{format::DefaultFields, FormattedFields},
};

View File

@ -0,0 +1,9 @@
//! Provides cell primitives.
//!
//! This is a drop-in replacement for `std::cell::SyncCell`/`std::cell::SyncUnsafeCell`.
mod sync_cell;
mod sync_unsafe_cell;
pub use sync_cell::SyncCell;
pub use sync_unsafe_cell::SyncUnsafeCell;

View File

@ -94,7 +94,7 @@ impl<T> SyncUnsafeCell<[T]> {
/// # Examples
///
/// ```
/// # use bevy_utils::syncunsafecell::SyncUnsafeCell;
/// # use bevy_platform::cell::SyncUnsafeCell;
///
/// let slice: &mut [i32] = &mut [1, 2, 3];
/// let cell_slice: &SyncUnsafeCell<[i32]> = SyncUnsafeCell::from_mut(slice);

View File

@ -19,6 +19,7 @@ cfg::alloc! {
pub mod collections;
}
pub mod cell;
pub mod cfg;
pub mod hash;
pub mod sync;

View File

@ -46,8 +46,6 @@ pub mod prelude {
pub use crate::default;
}
pub mod synccell;
pub mod syncunsafecell;
#[cfg(feature = "wgpu_wrapper")]
mod wgpu_wrapper;

View File

@ -0,0 +1,7 @@
---
title: SyncCell and SyncUnsafeCell moved to bevy_platform
pull_requests: [19305]
---
`bevy_utils::synccell::SyncCell` is now `bevy_platform::cell::SyncCell`
`bevy_utils::syncunsafecell::SyncUnsafeCell` is now `bevy_platform::cell::SyncUnsafeCell`