use tokio::io::AsyncReadExt;
use crate::{IdeviceError, ReadWrite, RsdService, obf};
impl RsdService for OpenStdioSocketClient {
fn rsd_service_name() -> std::borrow::Cow<'static, str> {
obf!("com.apple.coredevice.openstdiosocket")
}
async fn from_stream(stream: Box<dyn ReadWrite>) -> Result<Self, IdeviceError> {
Ok(Self { inner: stream })
}
}
#[derive(Debug)]
pub struct OpenStdioSocketClient {
pub inner: Box<dyn ReadWrite>,
}
impl OpenStdioSocketClient {
pub async fn read_uuid(&mut self) -> Result<uuid::Uuid, IdeviceError> {
let mut buf = [0u8; 16];
self.inner.read_exact(&mut buf).await?;
let res = uuid::Uuid::from_bytes(buf);
Ok(res)
}
}