#![warn(missing_docs)]
#![allow(dead_code)]
pub mod core;
pub mod sensors;
pub mod analysis;
pub mod detection;
pub mod streaming;
pub mod security;
pub mod config;
pub mod db;
#[cfg(feature = "gpu")]
pub mod gpu;
#[cfg(feature = "gui")]
pub mod ui;
pub use config::Config;
pub use core::{Engine, EventBus};
pub use sensors::{SensorManager, SensorReading, SensorType};
pub use analysis::AnalysisEngine;
pub use detection::{DetectionEngine, Detection, DetectionType};
pub use streaming::StreamingManager;
pub use security::SecurityManager;
pub use db::Database;
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const NAME: &str = "GlowBarn";
pub fn build_info() -> BuildInfo {
BuildInfo {
version: VERSION.to_string(),
rust_version: env!("CARGO_PKG_RUST_VERSION").to_string(),
target: std::env::consts::ARCH.to_string(),
os: std::env::consts::OS.to_string(),
features: enabled_features(),
}
}
#[derive(Debug, Clone)]
pub struct BuildInfo {
pub version: String,
pub rust_version: String,
pub target: String,
pub os: String,
pub features: Vec<String>,
}
fn enabled_features() -> Vec<String> {
let mut features = vec![];
#[cfg(feature = "gui")]
features.push("gui".to_string());
#[cfg(feature = "gpu")]
features.push("gpu".to_string());
#[cfg(feature = "audio")]
features.push("audio".to_string());
#[cfg(feature = "serial")]
features.push("serial".to_string());
#[cfg(feature = "ml")]
features.push("ml".to_string());
features
}