use std::cmp::max;
use serde::{Deserialize, Serialize};
use utoipa::ToSchema;
#[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize, ToSchema)]
pub struct ClockConfig {
pub clock_resolution_usecs: u64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub now_offset_ms: Option<i64>,
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
pub http_driven: bool,
}
impl ClockConfig {
pub fn clock_resolution_ms(&self) -> u64 {
max((self.clock_resolution_usecs + 500) / 1_000, 1)
}
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, ToSchema)]
pub struct ClockAdvanceRequest {
#[serde(default)]
pub delta_ms: Option<u64>,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, ToSchema)]
pub struct ClockAdvanceResponse {
pub now_ms: i64,
pub now: String,
}