use std::time::Duration;
const DEFAULT_MIN_POLL_INTERVAL: Duration = Duration::from_micros(50);
const DEFAULT_MAX_POLL_INTERVAL: Duration = Duration::from_millis(2);
#[derive(Debug, Clone, Copy)]
pub struct Options {
pub min_poll: Duration,
pub max_poll: Duration,
}
impl Default for Options {
fn default() -> Self {
Options {
min_poll: DEFAULT_MIN_POLL_INTERVAL,
max_poll: DEFAULT_MAX_POLL_INTERVAL,
}
}
}
impl Options {
pub fn with_poll_interval(min_poll: Duration, max_poll: Duration) -> Self {
let mut o = Options::default();
if !min_poll.is_zero() {
o.min_poll = min_poll;
}
if !max_poll.is_zero() {
o.max_poll = max_poll;
}
if o.max_poll < o.min_poll {
o.max_poll = o.min_poll;
}
o
}
}