mod blocking_timer;
mod client;
pub use client::Client;
use crate::{AtatCmd, Error};
pub trait AtatClient {
fn send<A: AtatCmd>(&mut self, cmd: &A) -> Result<A::Response, Error>;
fn send_retry<A: AtatCmd>(&mut self, cmd: &A) -> Result<A::Response, Error> {
for attempt in 1..=A::ATTEMPTS {
if attempt > 1 {
debug!("Attempt {}:", attempt);
}
match self.send(cmd) {
Err(Error::Timeout) => {}
r => return r,
}
}
Err(Error::Timeout)
}
}