1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// Copyright 2025 Neuraville Inc.
// SPDX-License-Identifier: Apache-2.0
// Runtime DTOs for V1 API
//
// These DTOs must match Python FastAPI response structures exactly.
use serde::{Deserialize, Serialize};
use utoipa::ToSchema;
/// Runtime status response
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
#[schema(example = json!({
"is_running": true,
"is_paused": false,
"frequency_hz": 30.0,
"burst_count": 12345,
"current_rate_hz": 29.8,
"last_burst_neuron_count": 45000,
"avg_burst_time_ms": 15.2
}))]
pub struct RuntimeStatusResponse {
/// Whether the burst engine is running
pub is_running: bool,
/// Whether the burst engine is paused
pub is_paused: bool,
/// Current burst frequency (Hz)
pub frequency_hz: f64,
/// Total burst count since start
pub burst_count: u64,
/// Current burst rate (bursts per second, measured)
pub current_rate_hz: f64,
/// Total neurons fired in last burst
pub last_burst_neuron_count: usize,
/// Average processing time per burst (milliseconds)
pub avg_burst_time_ms: f64,
}
/// Set frequency request
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
pub struct SetFrequencyRequest {
/// New burst frequency in Hz
pub frequency_hz: f64,
}
/// Burst count response
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
pub struct BurstCountResponse {
/// Total burst count
pub burst_count: u64,
}