pub struct IndexedImage<Color, Index = u8> { /* private fields */ }Expand description
An image represented as a palette of colors and a series of indices into that palette.
This type consists of a width, a height, a palette buffer, and an indices buffer.
The indices buffer is in row-major order where each index corresponds to one pixel and
references one of the palette colors. The length of the indices Vec is guaranteed to match
width * height and be less than or equal to MAX_PIXELS.
The default index type is u8, but may also be u16 or u32. Note that u16 or u32 may
not be fully supported by other functions throughout the crate.
§Examples
Directly creating an IndexedImage from a Vec of palette colors and indices:
let (width, height) = (512, 512);
let palette = vec![Srgb::new(0, 0, 0)];
let indices = vec![0; (width * height) as usize];
let image = IndexedImage::new(width, height, palette, indices)?;Implementations§
Source§impl<Color, Index: BoundedIndex> IndexedImage<Color, Index>
impl<Color, Index: BoundedIndex> IndexedImage<Color, Index>
Sourcepub fn new(
width: u32,
height: u32,
palette: Vec<Color>,
indices: Vec<Index>,
) -> Result<Self, CreateIndexedImageError<Color, Index>>
pub fn new( width: u32, height: u32, palette: Vec<Color>, indices: Vec<Index>, ) -> Result<Self, CreateIndexedImageError<Color, Index>>
Create a new IndexedImage from a palette of colors and indices into the palette.
§Errors
The provided palette and indices are returned as an Err if any of the following are true:
- The length of
indicesandwidth * heightdo not match. width * heightoverflows au32.
Note that this function does not validate that all indices in indices
are less than palette.len().
Sourcepub fn dimensions(&self) -> (u32, u32)
pub fn dimensions(&self) -> (u32, u32)
Returns the width and height of the IndexedImage.
Sourcepub fn width(&self) -> u32
pub fn width(&self) -> u32
Returns the width the IndexedImage.
Sourcepub fn height(&self) -> u32
pub fn height(&self) -> u32
Returns the height of the IndexedImage.
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns whether the IndexedImage has zero pixels.
Sourcepub fn num_pixels(&self) -> u32
pub fn num_pixels(&self) -> u32
Returns the number of pixels in the IndexedImage specified by width * height.
Sourcepub fn palette(&self) -> &[Color]
pub fn palette(&self) -> &[Color]
Returns a slice of the palette colors of the IndexedImage.
Sourcepub fn palette_mut(&mut self) -> &mut [Color]
pub fn palette_mut(&mut self) -> &mut [Color]
Returns a mutable slice of the palette colors of the IndexedImage.
Sourcepub fn indices(&self) -> &[Index]
pub fn indices(&self) -> &[Index]
Returns a slice of the indices of the IndexedImage.
Sourcepub fn indices_mut(&mut self) -> &mut [Index]
pub fn indices_mut(&mut self) -> &mut [Index]
Returns a mutable slice of the indices of the IndexedImage.
Sourcepub fn into_parts(self) -> (Vec<Color>, Vec<Index>)
pub fn into_parts(self) -> (Vec<Color>, Vec<Index>)
Consume an IndexedImage and return the inner palette Vec and indices Vec.
Sourcepub fn to_larger_indices<NewIndex>(&self) -> IndexedImage<Color, NewIndex>
pub fn to_larger_indices<NewIndex>(&self) -> IndexedImage<Color, NewIndex>
Create a new IndexedImage with a larger index type.
See also into_larger_indices for a consuming variant
that does not need to clone the palette.
Sourcepub fn to_smaller_indices<NewIndex>(
&self,
) -> Option<IndexedImage<Color, NewIndex>>
pub fn to_smaller_indices<NewIndex>( &self, ) -> Option<IndexedImage<Color, NewIndex>>
Create a new IndexedImage with a smaller index type.
See also into_smaller_indices for a consuming variant
that does not need to clone the palette.
This returns None if the length of the palette is larger than NewIndex::MAX + 1.
Sourcepub fn into_larger_indices<NewIndex>(self) -> IndexedImage<Color, NewIndex>where
NewIndex: BoundedIndex,
Index: Into<NewIndex>,
pub fn into_larger_indices<NewIndex>(self) -> IndexedImage<Color, NewIndex>where
NewIndex: BoundedIndex,
Index: Into<NewIndex>,
Convert the indices of an IndexedImage to a larger integer type.
See to_larger_indices for a non-consuming variant.
Sourcepub fn into_smaller_indices<NewIndex>(
self,
) -> Result<IndexedImage<Color, NewIndex>, Self>where
NewIndex: BoundedIndex,
Index: AsPrimitive<NewIndex>,
pub fn into_smaller_indices<NewIndex>(
self,
) -> Result<IndexedImage<Color, NewIndex>, Self>where
NewIndex: BoundedIndex,
Index: AsPrimitive<NewIndex>,
Convert the indices of an IndexedImage to a smaller integer type.
See to_smaller_indices for a non-consuming variant.
§Errors
This returns the original IndexedImage as an Err if the length of the palette is
larger than NewIndex::MAX + 1.
Sourcepub fn replace_palette<NewColor>(
self,
palette: Vec<NewColor>,
) -> Result<(IndexedImage<NewColor, Index>, Vec<Color>), (Self, Vec<NewColor>)>
pub fn replace_palette<NewColor>( self, palette: Vec<NewColor>, ) -> Result<(IndexedImage<NewColor, Index>, Vec<Color>), (Self, Vec<NewColor>)>
Replace the palette of an IndexedImage to a different color type (or to new colors
of the same type).
§Errors
If the length of the provided palette does not match the length of the current palette
in the IndexedImage, then self and palette are returned as an Err. Otherwise,
the new IndexedImage is returned alongside the old palette.
Sourcepub fn map<NewColor>(
self,
mapping: impl FnOnce(Vec<Color>) -> Vec<NewColor>,
) -> IndexedImage<NewColor, Index>
pub fn map<NewColor>( self, mapping: impl FnOnce(Vec<Color>) -> Vec<NewColor>, ) -> IndexedImage<NewColor, Index>
Map the palette of an IndexedImage, reusing the existing indices.
See map_ref to instead clone the existing indices
and retain the original IndexedImage.
Also see map_to_indexed to map an IndexedImage to a
new palette with a potentially different number of colors.
Rather than being a function from Color -> NewColor, mapping takes the whole palette
as input and returns a new palette. This is to allow batch or parallel mappings.
§Examples
It is recommended to do batch mappings for efficiency where it makes sense. E.g., using the
color space conversion functions from the color_space module.
use quantette::color_space::srgb8_to_oklab;
let srgb_image = IndexedImage::<Srgb<u8>>::default();
let oklab_image = srgb_image.map(|palette| srgb8_to_oklab(&palette));To instead map each color one at a time, use into_iter, map, and collect like normal:
let srgb_image = IndexedImage::<Srgb<u8>>::default();
let lin_srgb_image: IndexedImage<LinSrgb> =
srgb_image.map(|palette| palette.into_iter().map(|srgb| srgb.into_linear()).collect());§Panics
Panics if mapping returns a palette with a different length than the original palette.
Sourcepub fn map_ref<NewColor>(
&self,
mapping: impl FnOnce(&[Color]) -> Vec<NewColor>,
) -> IndexedImage<NewColor, Index>
pub fn map_ref<NewColor>( &self, mapping: impl FnOnce(&[Color]) -> Vec<NewColor>, ) -> IndexedImage<NewColor, Index>
Map the palette of an IndexedImage, cloning the existing indices.
See map to instead consume the original
IndexedImage and avoid a clone of the indices.
Also see map_to_indexed to map an IndexedImage to a
new palette with a potentially different number of colors.
Rather than being a function from Color -> NewColor, mapping takes the whole palette
as input and returns a new palette. This is to allow batch or parallel mappings.
§Examples
It is recommended to do batch mappings for efficiency where it makes sense. E.g., using the
color space conversion functions from the color_space module.
use quantette::color_space::srgb8_to_oklab;
let srgb_image = IndexedImage::<Srgb<u8>>::default();
let oklab_image = srgb_image.map_ref(srgb8_to_oklab);To instead map each color one at a time, use iter, map, and collect like normal:
let srgb_image = IndexedImage::<Srgb<u8>>::default();
let lin_srgb_image: IndexedImage<LinSrgb> =
srgb_image.map_ref(|palette| palette.iter().map(|srgb| srgb.into_linear()).collect());§Panics
Panics if mapping returns a palette with a different length than the original palette.
Sourcepub fn map_to_indexed<ColorMap: IndexedColorMap<Color>>(
&self,
color_map: ColorMap,
) -> IndexedImage<ColorMap::Output>
pub fn map_to_indexed<ColorMap: IndexedColorMap<Color>>( &self, color_map: ColorMap, ) -> IndexedImage<ColorMap::Output>
Map an IndexedImage to a new palette using the provided IndexedColorMap.
This function recalculates the indices for the new IndexedImage, as the new palette
may have a different length. To map only the palette colors see one of the following:
§Panics
Panics if color_map is not a valid implementor of IndexedColorMap. That is, it returns
a Vec with a different length than the input slice.
Sourcepub fn map_to_indexed_par<ColorMap: IndexedColorMap<Color>>(
&self,
color_map: ColorMap,
) -> IndexedImage<ColorMap::Output>
pub fn map_to_indexed_par<ColorMap: IndexedColorMap<Color>>( &self, color_map: ColorMap, ) -> IndexedImage<ColorMap::Output>
Map an IndexedImage to a new palette in parallel using the provided IndexedColorMap.
This function recalculates the indices for the new IndexedImage, as the new palette
may have a different length. To map only the palette colors see one of the following:
§Panics
Panics if color_map is not a valid implementor of IndexedColorMap. That is, it returns
a Vec with a different length than the input slice.
Sourcepub fn map_to_image<ColorMap: IndexedColorMap<Color>>(
&self,
color_map: ColorMap,
) -> ImageBuf<ColorMap::Output>
pub fn map_to_image<ColorMap: IndexedColorMap<Color>>( &self, color_map: ColorMap, ) -> ImageBuf<ColorMap::Output>
Convert an IndexedImage to an ImageBuf while also mapping the palette colors.
This is more efficient than map_ref followed by
to_image, since it avoids unnecessary intermediate indices.
§Panics
Panics if color_map is not a valid implementor of IndexedColorMap. That is, it returns
a Vec with a different length than the input slice.
Sourcepub fn map_to_image_par<ColorMap: IndexedColorMap<Color>>(
&self,
color_map: ColorMap,
) -> ImageBuf<ColorMap::Output>
pub fn map_to_image_par<ColorMap: IndexedColorMap<Color>>( &self, color_map: ColorMap, ) -> ImageBuf<ColorMap::Output>
Convert an IndexedImage to an ImageBuf in parallel while also mapping the palette colors.
This is more efficient than map_ref followed by
to_image_par, since it avoids unnecessary intermediate indices.
§Panics
Panics if color_map is not a valid implementor of IndexedColorMap. That is, it returns
a Vec with a different length than the input slice.
Sourcepub fn into_indexed_image_counts(self) -> IndexedImageCounts<Color, Index>
pub fn into_indexed_image_counts(self) -> IndexedImageCounts<Color, Index>
Convert an IndexedImage to an IndexedImageCounts by counting the number of times
each palette index appears.
Sourcepub fn to_image(&self) -> ImageBuf<Color>where
Color: Clone,
pub fn to_image(&self) -> ImageBuf<Color>where
Color: Clone,
Convert an IndexedImage to an ImageBuf.
See map_to_image if you also need to map the palette colors.
Sourcepub fn to_image_par(&self) -> ImageBuf<Color>
pub fn to_image_par(&self) -> ImageBuf<Color>
Convert an IndexedImage to an ImageBuf in parallel.
See map_to_image_par if you also need to map the palette colors.
Trait Implementations§
Source§impl<Color, Index: BoundedIndex> AsRef<IndexedImage<Color, Index>> for IndexedImageCounts<Color, Index>
impl<Color, Index: BoundedIndex> AsRef<IndexedImage<Color, Index>> for IndexedImageCounts<Color, Index>
Source§fn as_ref(&self) -> &IndexedImage<Color, Index>
fn as_ref(&self) -> &IndexedImage<Color, Index>
Source§impl<Color: Clone, Index: Clone> Clone for IndexedImage<Color, Index>
impl<Color: Clone, Index: Clone> Clone for IndexedImage<Color, Index>
Source§fn clone(&self) -> IndexedImage<Color, Index>
fn clone(&self) -> IndexedImage<Color, Index>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<Color, Index: BoundedIndex> Default for IndexedImage<Color, Index>
impl<Color, Index: BoundedIndex> Default for IndexedImage<Color, Index>
impl<Color: Eq, Index: Eq> Eq for IndexedImage<Color, Index>
impl<Color, Index> StructuralPartialEq for IndexedImage<Color, Index>
Auto Trait Implementations§
impl<Color, Index> Freeze for IndexedImage<Color, Index>
impl<Color, Index> RefUnwindSafe for IndexedImage<Color, Index>where
Color: RefUnwindSafe,
Index: RefUnwindSafe,
impl<Color, Index> Send for IndexedImage<Color, Index>
impl<Color, Index> Sync for IndexedImage<Color, Index>
impl<Color, Index> Unpin for IndexedImage<Color, Index>
impl<Color, Index> UnwindSafe for IndexedImage<Color, Index>where
Color: UnwindSafe,
Index: UnwindSafe,
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more