mod asset_plugin;
mod async_runtime_plugin;
#[cfg(all(feature = "render", feature = "winit"))]
mod render_plugin;
#[cfg(feature = "input")]
mod input_plugin;
#[cfg(feature = "text")]
mod text_plugin;
mod time_plugin;
pub use asset_plugin::AssetPlugin;
pub use async_runtime_plugin::AsyncRuntimePlugin;
pub use time_plugin::TimePlugin;
#[cfg(all(feature = "render", feature = "winit"))]
pub use render_plugin::RenderPlugin;
#[cfg(all(feature = "render", feature = "winit"))]
pub use render_plugin::RenderContexts;
#[cfg(feature = "input")]
pub use input_plugin::InputPlugin;
#[cfg(feature = "text")]
pub use text_plugin::TextPlugin;
use crate::plugin::{PluginDyn, PluginGroup};
pub struct MinimalPlugins;
impl PluginGroup for MinimalPlugins {
fn plugins(&self) -> Vec<Box<dyn PluginDyn>> {
vec![Box::new(AssetPlugin::default())]
}
fn name(&self) -> &'static str {
"MinimalPlugins"
}
}
pub struct DefaultPlugins;
impl PluginGroup for DefaultPlugins {
fn plugins(&self) -> Vec<Box<dyn PluginDyn>> {
let mut plugins: Vec<Box<dyn PluginDyn>> = vec![
Box::new(AssetPlugin::default()),
Box::new(TimePlugin),
];
#[cfg(feature = "input")]
plugins.push(Box::new(InputPlugin));
plugins
}
fn name(&self) -> &'static str {
"DefaultPlugins"
}
}