use vil_server::prelude::*;
use crate::config::SpeculativeConfig;
use std::sync::Arc;
#[derive(Debug, Serialize)]
pub struct StatsResponseBody {
pub max_draft_tokens: usize,
pub max_total_tokens: usize,
pub max_iterations: usize,
pub version: String,
}
pub async fn stats_handler(ctx: ServiceCtx) -> HandlerResult<VilResponse<StatsResponseBody>> {
let config = ctx
.state::<Arc<SpeculativeConfig>>()
.expect("SpeculativeConfig");
Ok(VilResponse::ok(StatsResponseBody {
max_draft_tokens: config.max_draft_tokens,
max_total_tokens: config.max_total_tokens,
max_iterations: config.max_iterations,
version: env!("CARGO_PKG_VERSION").into(),
}))
}