swarm-engine-core 0.1.6

Core types and orchestration for SwarmEngine
Documentation
//! Online Stats - オンライン統計の提供
//!
//! Swarm 内でリアルタイムに更新される統計情報を Selection に提供する。
//!
//! # 設計思想
//!
//! **目的**: Selection へのオンライン統計フィードバック
//!
//! ```text
//! ActionEvent → StatsSubscriber → SwarmStats → Selection (UCB1/Thompson)
//!//!                              visits, success_rate
//! ```
//!
//! # モジュール構成
//!
//! | モジュール | 責務 |
//! |-----------|------|
//! | `swarm` | SwarmStats(基本統計) |
//! | `subscriber` | ActionEvent → SwarmStats 更新 |
//! | `dumpable` | TickDumper 連携 |
//!
//! # 責務の分離
//!
//! - **online_stats**: リアルタイム統計(Selection 用)
//! - **learn**: オフライン統計(学習・分析用)
//!
//! # 使用例
//!
//! ```ignore
//! use swarm_engine_core::online_stats::{SwarmStats, StatsSubscriber, DumpableStats};
//! use swarm_engine_core::events::ActionEventPublisher;
//!
//! // Publisher と Subscriber を作成
//! let (publisher, rx) = ActionEventPublisher::new(1024);
//! let (subscriber, stats) = StatsSubscriber::with_new_stats(publisher.subscribe());
//!
//! // Subscriber を起動
//! tokio::spawn(subscriber.run());
//!
//! // Selection から統計を参照
//! let s = stats.read().unwrap();
//! let action_stats = s.get_action_stats("CheckStatus");
//! println!("Success rate: {:.2}%", action_stats.success_rate() * 100.0);
//! ```

mod dumpable;
mod subscriber;
mod swarm;

pub use dumpable::DumpableStats;
pub use subscriber::StatsSubscriber;
pub use swarm::{ActionStats, GlobalStats, SwarmStats};