use crate::error::Error;
use crate::Result;
pub fn check_buffer_size(
buffer_width: usize,
buffer_height: usize,
buffer_stride: usize,
buffer: &[u32],
) -> Result<()> {
let width = usize::max(buffer_width, buffer_stride);
let buffer_size = buffer.len() * 4; let required_buffer_size = width * buffer_height * 4;
if buffer_size < required_buffer_size {
let err = format!(
"Update failed because input buffer is too small. Required size for {} ({} stride) x {} buffer is {}
bytes but the size of the input buffer has the size {} bytes",
buffer_width, buffer_stride, buffer_height, required_buffer_size, buffer_size);
Err(Error::UpdateFailed(err))
} else {
Ok(())
}
}