Add AFC write_with_callback

This commit is contained in:
Jackson Coxson
2025-10-18 00:15:32 -06:00
parent 9a656a2a0e
commit 0490c246be

View File

@@ -130,4 +130,25 @@ impl FileDescriptor<'_> {
}
Ok(())
}
pub async fn write_with_callback<Fut, S>(
&mut self,
bytes: &[u8],
callback: impl Fn(((usize, usize), S)) -> Fut,
state: S,
) -> Result<(), IdeviceError>
where
Fut: std::future::Future<Output = ()>,
S: Clone,
{
let chunks = bytes.chunks(MAX_TRANSFER as usize);
let chunks_len = chunks.len();
for (i, chunk) in chunks.enumerate() {
let header_payload = self.fd.to_le_bytes().to_vec();
self.send_packet(AfcOpcode::Write, header_payload, chunk.to_vec())
.await?;
callback(((i, chunks_len), state.clone())).await;
}
Ok(())
}
}