Mountain/Binary/Initialize/RuntimeBuild/BuildWithConfig.rs
1
2//! Construct an Echo scheduler from a custom `SchedulerConfig::Struct`.
3//! Returns an `Arc<Scheduler>` ready for use; emits lifecycle dev-log
4//! lines with feature-gated detail (Telemetry, Debug).
5
6use std::sync::Arc;
7
8use Echo::Scheduler::Scheduler::Scheduler;
9
10use crate::{
11 Binary::Initialize::RuntimeBuild::{CreateBuilder, SchedulerConfig},
12 dev_log,
13};
14
15pub fn Fn(Config:SchedulerConfig::Struct) -> Arc<Scheduler> {
16 dev_log!("lifecycle", "[RuntimeBuild] Initializing scheduler with config: {:?}", Config);
17
18 let Builder = CreateBuilder::Fn(Config);
19
20 let SchedulerInstance = Builder.Build();
21
22 #[cfg(feature = "Telemetry")]
23 dev_log!("lifecycle", "[RuntimeBuild] Task metrics enabled");
24
25 #[cfg(feature = "Debug")]
26 dev_log!("lifecycle", "[RuntimeBuild] Scheduler debugging enabled");
27
28 dev_log!("lifecycle", "[RuntimeBuild] Scheduler initialized successfully");
29
30 Arc::new(SchedulerInstance)
31}