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