bevy_diagnostic/
lib.rs

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//! This crate provides a straightforward solution for integrating diagnostics in the [Bevy game engine](https://bevy.org/).
10//! It allows users to easily add diagnostic functionality to their Bevy applications, enhancing
11//! their ability to monitor and optimize their game's.
12
13#[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/// Adds core diagnostics resources to an App.
38#[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
50/// Default max history length for new diagnostics.
51pub const DEFAULT_MAX_HISTORY_LENGTH: usize = 120;