use async_trait::async_trait;
use azure_core::{error::ErrorKind, http::response::AsyncResponseBody, Error};
#[async_trait]
pub(crate) trait AsyncResponseBodyExt {
async fn collect_into_exact(mut self, buffer: &mut [u8]) -> Result<(), Error>;
}
#[async_trait]
impl AsyncResponseBodyExt for AsyncResponseBody {
async fn collect_into_exact(mut self, buffer: &mut [u8]) -> Result<(), Error> {
let count = self.collect_into(buffer).await?;
if count == buffer.len() {
Ok(())
} else {
Err(Error::with_message(
ErrorKind::Other,
"Received fewer than expected bytes.",
))
}
}
}