use std::time::Duration;
use crate::{
Result, adb_transport::ADBTransport,
message_devices::adb_transport_message::ADBTransportMessage,
};
const DEFAULT_READ_TIMEOUT: Duration = Duration::from_secs(u64::MAX);
const DEFAULT_WRITE_TIMEOUT: Duration = Duration::from_secs(2);
pub trait ADBMessageTransport: ADBTransport + Clone + Send + 'static {
fn read_message_with_timeout(&mut self, read_timeout: Duration) -> Result<ADBTransportMessage>;
fn read_message(&mut self) -> Result<ADBTransportMessage> {
self.read_message_with_timeout(DEFAULT_READ_TIMEOUT)
}
fn write_message_with_timeout(
&mut self,
message: ADBTransportMessage,
write_timeout: Duration,
) -> Result<()>;
fn write_message(&mut self, message: ADBTransportMessage) -> Result<()> {
self.write_message_with_timeout(message, DEFAULT_WRITE_TIMEOUT)
}
}