mod components; mod home; mod monitoring; mod resources; mod setup; use bevy::{app::Plugin, ecs::event::Event}; use crate::device::{ home::HomeViewPlugin, monitoring::MonitoringViewPlugin, resources::UniqueDevices, setup::DevicesSetupPlugin, }; pub use crate::{device::components::*, device::resources::ConnectedDevice}; #[derive(Debug)] pub enum ConnectionState { Disconnected, Connecting, Connected, } impl core::fmt::Display for ConnectionState { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { Self::Disconnected => write!(f, "Disconnected"), Self::Connecting => write!(f, "Connecting"), Self::Connected => write!(f, "Connected"), } } } #[derive(Debug, Event)] pub struct FindDevices; #[derive(Debug)] pub struct DevicePlugin; impl Plugin for DevicePlugin { fn build(&self, app: &mut bevy::app::App) { app.init_resource::().add_plugins(( DevicesSetupPlugin, HomeViewPlugin, MonitoringViewPlugin, )); } }