#[deprecated(note = "use `bytemuck::cast_slice()` instead")]
pub trait ComponentSlice<T> {
#[deprecated(note = "use `bytemuck::cast_slice()` instead; or at least call it like ComponentSlice::as_slice(px)")]
fn as_slice(&self) -> &[T];
#[deprecated(note = "use `bytemuck::cast_slice_mut()` instead; or at least call it like ComponentSlice::as_mut_slice(px)")]
fn as_mut_slice(&mut self) -> &mut [T];
}
#[cfg(feature = "as-bytes")]
#[allow(deprecated)]
pub trait ComponentBytes<T: crate::Pod> where Self: ComponentSlice<T> {
#[inline]
fn as_bytes(&self) -> &[u8] {
assert_ne!(0, core::mem::size_of::<T>());
#[allow(deprecated)]
let slice = ComponentSlice::as_slice(self);
unsafe {
core::slice::from_raw_parts(slice.as_ptr().cast(), core::mem::size_of_val(slice))
}
}
#[inline]
fn as_bytes_mut(&mut self) -> &mut [u8] {
assert_ne!(0, core::mem::size_of::<T>());
#[allow(deprecated)]
let slice = ComponentSlice::as_mut_slice(self);
unsafe {
core::slice::from_raw_parts_mut(slice.as_mut_ptr().cast(), core::mem::size_of_val(slice))
}
}
}
pub trait ComponentMap<DestPixel, SrcComponent, DestComponent> {
fn map<Callback>(&self, f: Callback) -> DestPixel
where Callback: FnMut(SrcComponent) -> DestComponent;
}
pub trait ColorComponentMap<DestPixel, SrcComponent, DestComponent> {
#[doc(alias = "map_colors_same")]
fn map_colors<Callback>(&self, f: Callback) -> DestPixel
where Callback: FnMut(SrcComponent) -> DestComponent {
#[allow(deprecated)]
self.map_c(f)
}
#[deprecated(note = "renamed to map_colors")]
fn map_c<Callback>(&self, f: Callback) -> DestPixel
where Callback: FnMut(SrcComponent) -> DestComponent {
self.map_colors(f)
}
}