Skip to main content

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}