use serde::{Deserialize, Serialize};
use std::time::Duration;
pub const SESSION_INACTIVITY_TIMEOUT: Duration = Duration::from_secs(30);
#[derive(Copy, Clone, Debug, Deserialize, Serialize)]
pub struct Timeout(Duration);
impl Timeout {
pub fn new(duration: Duration) -> Self {
Timeout(duration)
}
pub fn from_secs(secs: u64) -> Self {
Self::from(Duration::from_secs(secs))
}
pub fn duration(&self) -> Duration {
self.0
}
}
impl Default for Timeout {
fn default() -> Self {
Self::new(SESSION_INACTIVITY_TIMEOUT)
}
}
impl From<Duration> for Timeout {
fn from(duration: Duration) -> Self {
Self::new(duration)
}
}