 320ac65a9e
			
		
	
	
		320ac65a9e
		
			
		
	
	
	
	
		
			
			# Objective Implements #9216 ## Solution - Replace `DiagnosticId` by `DiagnosticPath`. It's pre-hashed using `const-fnv1a-hash` crate, so it's possible to create path in const contexts. --- ## Changelog - Replaced `DiagnosticId` by `DiagnosticPath` - Set default history length to 120 measurements (2 seconds on 60 fps). I've noticed hardcoded constant 20 everywhere and decided to change it to `DEFAULT_MAX_HISTORY_LENGTH` , which is set to new diagnostics by default. To override it, use `with_max_history_length`. ## Migration Guide ```diff - const UNIQUE_DIAG_ID: DiagnosticId = DiagnosticId::from_u128(42); + const UNIQUE_DIAG_PATH: DiagnosticPath = DiagnosticPath::const_new("foo/bar"); - Diagnostic::new(UNIQUE_DIAG_ID, "example", 10) + Diagnostic::new(UNIQUE_DIAG_PATH).with_max_history_length(10) - diagnostics.add_measurement(UNIQUE_DIAG_ID, || 42); + diagnostics.add_measurement(&UNIQUE_DIAG_ID, || 42); ```
		
			
				
	
	
		
			33 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| //! This crate provides a straightforward solution for integrating diagnostics in the [Bevy game engine](https://bevyengine.org/).
 | |
| //! It allows users to easily add diagnostic functionality to their Bevy applications, enhancing
 | |
| //! their ability to monitor and optimize their game's.
 | |
| 
 | |
| mod diagnostic;
 | |
| mod entity_count_diagnostics_plugin;
 | |
| mod frame_time_diagnostics_plugin;
 | |
| mod log_diagnostics_plugin;
 | |
| mod system_information_diagnostics_plugin;
 | |
| 
 | |
| use bevy_app::prelude::*;
 | |
| pub use diagnostic::*;
 | |
| pub use entity_count_diagnostics_plugin::EntityCountDiagnosticsPlugin;
 | |
| pub use frame_time_diagnostics_plugin::FrameTimeDiagnosticsPlugin;
 | |
| pub use log_diagnostics_plugin::LogDiagnosticsPlugin;
 | |
| pub use system_information_diagnostics_plugin::SystemInformationDiagnosticsPlugin;
 | |
| 
 | |
| /// Adds core diagnostics resources to an App.
 | |
| #[derive(Default)]
 | |
| pub struct DiagnosticsPlugin;
 | |
| 
 | |
| impl Plugin for DiagnosticsPlugin {
 | |
|     fn build(&self, app: &mut App) {
 | |
|         app.init_resource::<DiagnosticsStore>().add_systems(
 | |
|             Startup,
 | |
|             system_information_diagnostics_plugin::internal::log_system_info,
 | |
|         );
 | |
|     }
 | |
| }
 | |
| 
 | |
| /// Default max history length for new diagnostics.
 | |
| pub const DEFAULT_MAX_HISTORY_LENGTH: usize = 120;
 |