1#![cfg_attr(docsrs, feature(doc_cfg))]
2#![forbid(unsafe_code)]
3#![doc(
4 html_logo_url = "https://bevy.org/assets/icon.png",
5 html_favicon_url = "https://bevy.org/assets/icon.png"
6)]
7#![no_std]
8
9#[cfg(feature = "std")]
14extern crate std;
15
16extern crate alloc;
17
18mod diagnostic;
19mod entity_count_diagnostics_plugin;
20mod frame_count_diagnostics_plugin;
21mod frame_time_diagnostics_plugin;
22mod log_diagnostics_plugin;
23#[cfg(feature = "sysinfo_plugin")]
24mod system_information_diagnostics_plugin;
25
26pub use diagnostic::*;
27
28pub use entity_count_diagnostics_plugin::EntityCountDiagnosticsPlugin;
29pub use frame_count_diagnostics_plugin::{update_frame_count, FrameCount, FrameCountPlugin};
30pub use frame_time_diagnostics_plugin::FrameTimeDiagnosticsPlugin;
31pub use log_diagnostics_plugin::{LogDiagnosticsPlugin, LogDiagnosticsState};
32#[cfg(feature = "sysinfo_plugin")]
33pub use system_information_diagnostics_plugin::{SystemInfo, SystemInformationDiagnosticsPlugin};
34
35use bevy_app::prelude::*;
36
37#[derive(Default)]
39pub struct DiagnosticsPlugin;
40
41impl Plugin for DiagnosticsPlugin {
42 fn build(&self, app: &mut App) {
43 app.init_resource::<DiagnosticsStore>();
44
45 #[cfg(feature = "sysinfo_plugin")]
46 app.init_resource::<SystemInfo>();
47 }
48}
49
50pub const DEFAULT_MAX_HISTORY_LENGTH: usize = 120;