pub(crate) const MANAGED_SETTLE_DEADLINE_MS: i64 = 10_000;
pub(crate) const SESSION_ADMISSION_TIMEOUT_MS: u64 = 45_000;
pub(crate) const WASM_ACCEPT_CLOSE_GRACE_MS: u64 = 4_000;
pub(crate) const WASM_CONNECT_REPLACEMENT_GRACE_MS: u64 = 8_000;
pub(crate) const WASM_REPLACEMENT_POLL_MAX_INTERVAL_MS: u64 = 500;
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct PolicySnapshot {
pub managed_settle_deadline_ms: i64,
pub session_admission_timeout_ms: u64,
pub wasm: WasmPolicySnapshot,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct WasmPolicySnapshot {
pub accept_close_grace_ms: u64,
pub connect_replacement_grace_ms: u64,
pub replacement_poll_max_interval_ms: u64,
}
pub fn policy_snapshot() -> PolicySnapshot {
PolicySnapshot {
managed_settle_deadline_ms: MANAGED_SETTLE_DEADLINE_MS,
session_admission_timeout_ms: SESSION_ADMISSION_TIMEOUT_MS,
wasm: WasmPolicySnapshot {
accept_close_grace_ms: WASM_ACCEPT_CLOSE_GRACE_MS,
connect_replacement_grace_ms: WASM_CONNECT_REPLACEMENT_GRACE_MS,
replacement_poll_max_interval_ms: WASM_REPLACEMENT_POLL_MAX_INTERVAL_MS,
},
}
}