68 lines
1.7 KiB
Rust
68 lines
1.7 KiB
Rust
|
|
//! Phase 91: CoreServices 定義
|
||
|
|
//!
|
||
|
|
//! Ring1-Core: core_required Box の Service trait 群。
|
||
|
|
//! Phase 87 CoreBoxId の core_required (6個) 全てをカバー。
|
||
|
|
|
||
|
|
use std::sync::Arc;
|
||
|
|
|
||
|
|
/// StringBox Service trait
|
||
|
|
pub trait StringService: Send + Sync {
|
||
|
|
// Phase 92 以降で実装
|
||
|
|
}
|
||
|
|
|
||
|
|
/// IntegerBox Service trait
|
||
|
|
pub trait IntegerService: Send + Sync {
|
||
|
|
// Phase 92 以降で実装
|
||
|
|
}
|
||
|
|
|
||
|
|
/// BoolBox Service trait
|
||
|
|
pub trait BoolService: Send + Sync {
|
||
|
|
// Phase 92 以降で実装
|
||
|
|
}
|
||
|
|
|
||
|
|
/// ArrayBox Service trait
|
||
|
|
pub trait ArrayService: Send + Sync {
|
||
|
|
// Phase 92 以降で実装
|
||
|
|
}
|
||
|
|
|
||
|
|
/// MapBox Service trait
|
||
|
|
pub trait MapService: Send + Sync {
|
||
|
|
// Phase 92 以降で実装
|
||
|
|
}
|
||
|
|
|
||
|
|
/// ConsoleBox Service trait
|
||
|
|
pub trait ConsoleService: Send + Sync {
|
||
|
|
// Phase 92 以降で実装
|
||
|
|
}
|
||
|
|
|
||
|
|
/// CoreServices: core_required Box の集合
|
||
|
|
///
|
||
|
|
/// Phase 85 設計原則:
|
||
|
|
/// - core_required は必ず全て揃っていなければならない
|
||
|
|
/// - 起動時に全フィールドが初期化されていることを保証
|
||
|
|
///
|
||
|
|
/// Phase 87 CoreBoxId との対応:
|
||
|
|
/// - String → string
|
||
|
|
/// - Integer → integer
|
||
|
|
/// - Bool → bool
|
||
|
|
/// - Array → array
|
||
|
|
/// - Map → map
|
||
|
|
/// - Console → console
|
||
|
|
pub struct CoreServices {
|
||
|
|
pub string: Arc<dyn StringService>,
|
||
|
|
pub integer: Arc<dyn IntegerService>,
|
||
|
|
pub bool: Arc<dyn BoolService>,
|
||
|
|
pub array: Arc<dyn ArrayService>,
|
||
|
|
pub map: Arc<dyn MapService>,
|
||
|
|
pub console: Arc<dyn ConsoleService>,
|
||
|
|
}
|
||
|
|
|
||
|
|
impl CoreServices {
|
||
|
|
/// 全フィールドが初期化されているか検証
|
||
|
|
/// Phase 92 以降で各 Service の初期化を検証
|
||
|
|
pub fn ensure_initialized(&self) {
|
||
|
|
// Phase 91 では trait が空なので何もしない
|
||
|
|
// Phase 92 以降で各 Service の初期化を検証
|
||
|
|
}
|
||
|
|
}
|