Skip to main content

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}