Mountain/Binary/Initialize/RuntimeBuild/BuildWithConfig.rs
1#![allow(non_snake_case)]
2
3//! Construct an Echo scheduler from a custom `SchedulerConfig::Struct`.
4//! Returns an `Arc<Scheduler>` ready for use; emits lifecycle dev-log
5//! lines with feature-gated detail (Telemetry, Debug).
6
7use std::sync::Arc;
8
9use Echo::Scheduler::Scheduler::Scheduler;
10
11use crate::{
12 Binary::Initialize::RuntimeBuild::{CreateBuilder, SchedulerConfig},
13 dev_log,
14};
15
16pub fn Fn(Config:SchedulerConfig::Struct) -> Arc<Scheduler> {
17 dev_log!("lifecycle", "[RuntimeBuild] Initializing scheduler with config: {:?}", Config);
18
19 let Builder = CreateBuilder::Fn(Config);
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 Arc::new(SchedulerInstance)
30}