use crate::{ImageStore, ImageStoreMut};
use std::fmt::Debug;
impl<F: Clone + Debug + Copy, const CN: usize> ImageStore<'_, F, CN>
where
[F]: ToOwned<Owned = Vec<F>>,
{
pub(crate) fn to_colorutils_buffer(&self) -> colorutils_rs::ImageBuffer<'_, F> {
colorutils_rs::ImageBuffer {
data: std::borrow::Cow::Borrowed(self.as_bytes()),
width: self.width as u32,
height: self.height as u32,
stride: self.stride as u32,
channels: self.channels as u32,
}
}
}
impl<F: Copy + Debug, const CN: usize> ImageStoreMut<'_, F, CN>
where
[F]: ToOwned<Owned = Vec<F>>,
{
pub(crate) fn to_colorutils_buffer_mut(&mut self) -> colorutils_rs::ImageBufferMut<'_, F> {
let dst_width = self.width;
let dst_height = self.height;
let dst_stride = self.stride;
let dst_channels = self.channels;
colorutils_rs::ImageBufferMut {
data: colorutils_rs::BufferStore::Borrowed(self.buffer.borrow_mut()),
width: dst_width as u32,
height: dst_height as u32,
stride: dst_stride as u32,
channels: dst_channels as u32,
}
}
}