move once from bevy_log to bevy_utils, to allow for it's use in bevy_ecs (#11419)
# Objective When working within `bevy_ecs`, we can't use the `log_once` macros due to their placement in `bevy_log` - which depends on `bevy_ecs`. All this create does is migrate those macros to the `bevy_utils` crate, while still re-exporting them in `bevy_log`. created to resolve this: https://github.com/bevyengine/bevy/pull/11417#discussion_r1458100211 --------- Co-authored-by: François <mockersf@gmail.com>
This commit is contained in:
		
							parent
							
								
									6fbd585d78
								
							
						
					
					
						commit
						e9b8c71da0
					
				@ -11,8 +11,6 @@
 | 
				
			|||||||
//! For more fine-tuned control over logging behavior, set up the [`LogPlugin`] or
 | 
					//! For more fine-tuned control over logging behavior, set up the [`LogPlugin`] or
 | 
				
			||||||
//! `DefaultPlugins` during app initialization.
 | 
					//! `DefaultPlugins` during app initialization.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mod once;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#[cfg(feature = "trace")]
 | 
					#[cfg(feature = "trace")]
 | 
				
			||||||
use std::panic;
 | 
					use std::panic;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -31,12 +29,17 @@ pub mod prelude {
 | 
				
			|||||||
        debug, debug_span, error, error_span, info, info_span, trace, trace_span, warn, warn_span,
 | 
					        debug, debug_span, error, error_span, info, info_span, trace, trace_span, warn, warn_span,
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pub use crate::{debug_once, error_once, info_once, trace_once, warn_once};
 | 
					    #[doc(hidden)]
 | 
				
			||||||
 | 
					    pub use bevy_utils::{debug_once, error_once, info_once, once, trace_once, warn_once};
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub use bevy_utils::tracing::{
 | 
					pub use bevy_utils::{
 | 
				
			||||||
    debug, debug_span, error, error_span, info, info_span, trace, trace_span, warn, warn_span,
 | 
					    debug_once, error_once, info_once, once, trace_once,
 | 
				
			||||||
    Level,
 | 
					    tracing::{
 | 
				
			||||||
 | 
					        debug, debug_span, error, error_span, info, info_span, trace, trace_span, warn, warn_span,
 | 
				
			||||||
 | 
					        Level,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    warn_once,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
pub use tracing_subscriber;
 | 
					pub use tracing_subscriber;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,7 @@ mod cow_arc;
 | 
				
			|||||||
mod default;
 | 
					mod default;
 | 
				
			||||||
mod float_ord;
 | 
					mod float_ord;
 | 
				
			||||||
pub mod intern;
 | 
					pub mod intern;
 | 
				
			||||||
 | 
					mod once;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub use crate::uuid::Uuid;
 | 
					pub use crate::uuid::Uuid;
 | 
				
			||||||
pub use ahash::{AHasher, RandomState};
 | 
					pub use ahash::{AHasher, RandomState};
 | 
				
			||||||
 | 
				
			|||||||
@ -11,52 +11,52 @@ macro_rules! once {
 | 
				
			|||||||
    }};
 | 
					    }};
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Call [`trace!`](crate::trace) once per call site.
 | 
					/// Call [`trace!`](crate::tracing::trace) once per call site.
 | 
				
			||||||
///
 | 
					///
 | 
				
			||||||
/// Useful for logging within systems which are called every frame.
 | 
					/// Useful for logging within systems which are called every frame.
 | 
				
			||||||
#[macro_export]
 | 
					#[macro_export]
 | 
				
			||||||
macro_rules! trace_once {
 | 
					macro_rules! trace_once {
 | 
				
			||||||
    ($($arg:tt)+) => ({
 | 
					    ($($arg:tt)+) => ({
 | 
				
			||||||
        $crate::once!($crate::trace!($($arg)+))
 | 
					        $crate::once!($crate::tracing::trace!($($arg)+))
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Call [`debug!`](crate::debug) once per call site.
 | 
					/// Call [`debug!`](crate::tracing::debug) once per call site.
 | 
				
			||||||
///
 | 
					///
 | 
				
			||||||
/// Useful for logging within systems which are called every frame.
 | 
					/// Useful for logging within systems which are called every frame.
 | 
				
			||||||
#[macro_export]
 | 
					#[macro_export]
 | 
				
			||||||
macro_rules! debug_once {
 | 
					macro_rules! debug_once {
 | 
				
			||||||
    ($($arg:tt)+) => ({
 | 
					    ($($arg:tt)+) => ({
 | 
				
			||||||
        $crate::once!($crate::debug!($($arg)+))
 | 
					        $crate::once!($crate::tracing::debug!($($arg)+))
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Call [`info!`](crate::info) once per call site.
 | 
					/// Call [`info!`](crate::tracing::info) once per call site.
 | 
				
			||||||
///
 | 
					///
 | 
				
			||||||
/// Useful for logging within systems which are called every frame.
 | 
					/// Useful for logging within systems which are called every frame.
 | 
				
			||||||
#[macro_export]
 | 
					#[macro_export]
 | 
				
			||||||
macro_rules! info_once {
 | 
					macro_rules! info_once {
 | 
				
			||||||
    ($($arg:tt)+) => ({
 | 
					    ($($arg:tt)+) => ({
 | 
				
			||||||
        $crate::once!($crate::info!($($arg)+))
 | 
					        $crate::once!($crate::tracing::info!($($arg)+))
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Call [`warn!`](crate::warn) once per call site.
 | 
					/// Call [`warn!`](crate::tracing::warn) once per call site.
 | 
				
			||||||
///
 | 
					///
 | 
				
			||||||
/// Useful for logging within systems which are called every frame.
 | 
					/// Useful for logging within systems which are called every frame.
 | 
				
			||||||
#[macro_export]
 | 
					#[macro_export]
 | 
				
			||||||
macro_rules! warn_once {
 | 
					macro_rules! warn_once {
 | 
				
			||||||
    ($($arg:tt)+) => ({
 | 
					    ($($arg:tt)+) => ({
 | 
				
			||||||
        $crate::once!($crate::warn!($($arg)+))
 | 
					        $crate::once!($crate::tracing::warn!($($arg)+))
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Call [`error!`](crate::error) once per call site.
 | 
					/// Call [`error!`](crate::tracing::error) once per call site.
 | 
				
			||||||
///
 | 
					///
 | 
				
			||||||
/// Useful for logging within systems which are called every frame.
 | 
					/// Useful for logging within systems which are called every frame.
 | 
				
			||||||
#[macro_export]
 | 
					#[macro_export]
 | 
				
			||||||
macro_rules! error_once {
 | 
					macro_rules! error_once {
 | 
				
			||||||
    ($($arg:tt)+) => ({
 | 
					    ($($arg:tt)+) => ({
 | 
				
			||||||
        $crate::once!($crate::error!($($arg)+))
 | 
					        $crate::once!($crate::tracing::error!($($arg)+))
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user