#![forbid(unsafe_code)]
pub const TARGET_RUNTIME: &str = "ftui.runtime";
pub const TARGET_EFFECT: &str = "ftui.effect";
pub const TARGET_PROCESS: &str = "ftui.process";
pub const TARGET_RESIZE: &str = "ftui.decision.resize";
pub const TARGET_VOI: &str = "ftui.voi";
pub const TARGET_BOCPD: &str = "ftui.bocpd";
pub const TARGET_EPROCESS: &str = "ftui.eprocess";
pub mod event {
pub const RUNTIME_STARTUP: &str = "runtime.startup";
pub const EFFECT_QUEUE_SHUTDOWN: &str = "effect_queue.shutdown";
pub const SPAWN_EXECUTOR_SHUTDOWN: &str = "spawn_executor.shutdown";
pub const SUBSCRIPTION_STOP_ALL: &str = "subscription.stop_all";
pub const SUBSCRIPTION_STOP: &str = "subscription.stop";
pub const EFFECT_COMMAND: &str = "effect.command";
pub const EFFECT_SUBSCRIPTION: &str = "effect.subscription";
pub const QUEUE_DROP: &str = "effect_queue.drop";
pub const EFFECT_TIMEOUT: &str = "effect.timeout";
pub const EFFECT_PANIC: &str = "effect.panic";
}
pub mod metric {
pub const EFFECTS_COMMAND_TOTAL: &str = "effects_command_total";
pub const EFFECTS_SUBSCRIPTION_TOTAL: &str = "effects_subscription_total";
pub const EFFECTS_EXECUTED_TOTAL: &str = "effects_executed_total";
pub const EFFECTS_QUEUE_ENQUEUED: &str = "effects_queue_enqueued";
pub const EFFECTS_QUEUE_PROCESSED: &str = "effects_queue_processed";
pub const EFFECTS_QUEUE_DROPPED: &str = "effects_queue_dropped";
pub const EFFECTS_QUEUE_HIGH_WATER: &str = "effects_queue_high_water";
pub const EFFECTS_QUEUE_IN_FLIGHT: &str = "effects_queue_in_flight";
}
pub mod field {
pub const ELAPSED_US: &str = "elapsed_us";
pub const DURATION_US: &str = "duration_us";
pub const SUB_ID: &str = "sub_id";
pub const COMMAND_TYPE: &str = "command_type";
pub const REQUESTED_LANE: &str = "requested_lane";
pub const RESOLVED_LANE: &str = "resolved_lane";
pub const ROLLOUT_POLICY: &str = "rollout_policy";
pub const TIMEOUT_MS: &str = "timeout_ms";
pub const PENDING_HANDLES: &str = "pending_handles";
pub const REASON: &str = "reason";
}
pub const SCHEMA_VERSION: &str = "1.0.0";
pub const ALL_TARGETS: &[&str] = &[
TARGET_RUNTIME,
TARGET_EFFECT,
TARGET_PROCESS,
TARGET_RESIZE,
TARGET_VOI,
TARGET_BOCPD,
TARGET_EPROCESS,
];
pub const ALL_EVENTS: &[&str] = &[
event::RUNTIME_STARTUP,
event::EFFECT_QUEUE_SHUTDOWN,
event::SPAWN_EXECUTOR_SHUTDOWN,
event::SUBSCRIPTION_STOP_ALL,
event::SUBSCRIPTION_STOP,
event::EFFECT_COMMAND,
event::EFFECT_SUBSCRIPTION,
event::QUEUE_DROP,
event::EFFECT_TIMEOUT,
event::EFFECT_PANIC,
];
pub const ALL_METRICS: &[&str] = &[
metric::EFFECTS_COMMAND_TOTAL,
metric::EFFECTS_SUBSCRIPTION_TOTAL,
metric::EFFECTS_EXECUTED_TOTAL,
metric::EFFECTS_QUEUE_ENQUEUED,
metric::EFFECTS_QUEUE_PROCESSED,
metric::EFFECTS_QUEUE_DROPPED,
metric::EFFECTS_QUEUE_HIGH_WATER,
metric::EFFECTS_QUEUE_IN_FLIGHT,
];
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn schema_version_is_semver() {
let parts: Vec<&str> = SCHEMA_VERSION.split('.').collect();
assert_eq!(parts.len(), 3, "schema version must be semver");
for part in &parts {
assert!(
part.parse::<u32>().is_ok(),
"each semver component must be a number: {part}"
);
}
}
#[test]
fn all_targets_are_dotted() {
for target in ALL_TARGETS {
assert!(
target.contains('.'),
"target should be dotted namespace: {target}"
);
assert!(
target.starts_with("ftui."),
"target should start with ftui.: {target}"
);
}
}
#[test]
fn all_events_have_dotted_names() {
for event in ALL_EVENTS {
assert!(event.contains('.'), "event name should be dotted: {event}");
}
}
#[test]
fn all_metrics_are_snake_case() {
for metric in ALL_METRICS {
assert!(
metric.chars().all(|c| c.is_ascii_lowercase() || c == '_'),
"metric name should be snake_case: {metric}"
);
}
}
#[test]
fn no_duplicate_targets() {
let mut seen = std::collections::HashSet::new();
for target in ALL_TARGETS {
assert!(seen.insert(target), "duplicate target: {target}");
}
}
#[test]
fn no_duplicate_events() {
let mut seen = std::collections::HashSet::new();
for event in ALL_EVENTS {
assert!(seen.insert(event), "duplicate event: {event}");
}
}
#[test]
fn no_duplicate_metrics() {
let mut seen = std::collections::HashSet::new();
for metric in ALL_METRICS {
assert!(seen.insert(metric), "duplicate metric: {metric}");
}
}
}