//! This crate provides the ability to annotate structs with a `#[derive(Inspectable)]`,
//! which opens a debug interface using [egui](https://github.com/emilk/egui) where you can visually edit the values of your struct live.
//!
//! Your struct will then be available to you as a bevy resource.
//!
//! ## Example
//! ```rust
//! use bevy_inspector_egui::Inspectable;
//!
//! #[derive(Inspectable, Default)]
//! struct Data {
//! should_render: bool,
//! text: String,
//! #[inspectable(min = 42.0, max = 100.0)]
//! size: f32,
//! }
//! ```
//! Add the [`InspectorPlugin`] to your App.
//! ```rust,no_run
//! use bevy_inspector_egui::InspectorPlugin;
//! # use bevy::prelude::*;
//!
//! # #[derive(bevy_inspector_egui::Inspectable, Default)] struct Data {}
//! fn main() {
//! App::build()
//! .add_plugins(DefaultPlugins)
//! .add_plugin(InspectorPlugin::<Data>::new())
//! .add_system(your_system.system())
//! .run();
//! }
//!
//! # fn your_system() {}
//! // fn your_system(data: Res<Data>) { /* */ }
//! ```
//!
pub use egui;
/// Derives the [`Inspectable`](Inspectable) trait.
pub use Inspectable;
pub use InspectorPlugin;
/// Attributes for the built-in [`Inspectable`](Inspectable) implementations
/// This type is passed to the [`Inspectable::ui`](Inspectable::ui) method
/// to give access to the attributes specified in the `#[derive(Inspectable)]`.
/// For an example of defining custom attributes, see the [docs of Inspectable](Inspectable::FieldOptions).
/// This trait describes how a struct should be displayed.
/// It can be derived for structs and enums, see the [crate-level docs](index.html) for how to do that.