#[repr(C)]pub struct Cam16Jsh<T> {
pub lightness: T,
pub saturation: T,
pub hue: Cam16Hue<T>,
}
Expand description
Partial CIE CAM16, with lightness and saturation.
It contains enough information for converting CAM16 to other color spaces. See Cam16 for more details about CIE CAM16.
The full list of partial CAM16 variants is:
Cam16Jch
: lightness and chroma.Cam16Jmh
: lightness and colorfulness.Cam16Jsh
: lightness and saturation.Cam16Qch
: brightness and chroma.Cam16Qmh
: brightness and colorfulness.Cam16Qsh
: brightness and saturation.
§Creating a Value
Any partial CAM16 set can be obtained from the full set of
attributes. It’s also possible to convert directly to it, using
from_xyz
,
or to create a new value by calling
new
.
use palette::{
Srgb, FromColor, IntoColor, hues::Cam16Hue,
cam16::{Cam16, Parameters, Cam16Jsh},
};
let partial = Cam16Jsh::new(50.0f32, 80.0, 120.0);
// There's also `new_const`:
const PARTIAL: Cam16Jsh<f32> = Cam16Jsh::new_const(50.0, 80.0, Cam16Hue::new(120.0));
// Customize these according to the viewing conditions:
let mut example_parameters = Parameters::default_static_wp(40.0);
// Partial CAM16 from sRGB, or most other color spaces:
let rgb = Srgb::new(0.3f32, 0.8, 0.1);
let partial_from_rgb = Cam16Jsh::from_xyz(rgb.into_color(), example_parameters);
// Partial CAM16 from sRGB, via full CAM16:
let rgb = Srgb::new(0.3f32, 0.8, 0.1);
let cam16_from_rgb = Cam16::from_xyz(rgb.into_color(), example_parameters);
let partial_from_full = Cam16Jsh::from(cam16_from_rgb);
// Direct conversion has the same result as going via full CAM16.
assert_eq!(partial_from_rgb, partial_from_full);
// It's also possible to convert from (and to) arrays and tuples:
let partial_from_array = Cam16Jsh::from([50.0f32, 80.0, 120.0]);
let partial_from_tuple = Cam16Jsh::from((50.0f32, 80.0, 120.0));
Fields§
§lightness: T
The lightness (J) of the color.
See Cam16::lightness
.
saturation: T
The saturation (s) of the color.
See ’Cam16::saturation.
hue: Cam16Hue<T>
The hue (h) of the color.
See Cam16::hue
.
Implementations§
source§impl<T> Cam16Jsh<T>
impl<T> Cam16Jsh<T>
sourcepub const fn new_const(lightness: T, saturation: T, hue: Cam16Hue<T>) -> Self
pub const fn new_const(lightness: T, saturation: T, hue: Cam16Hue<T>) -> Self
Create a partial CIE CAM16 color. This is the same as Cam16Jsh::new
without the generic hue type. It’s temporary until const fn
supports traits.
sourcepub fn into_components(self) -> (T, T, Cam16Hue<T>)
pub fn into_components(self) -> (T, T, Cam16Hue<T>)
Convert to a (lightness, saturation, hue)
tuple.
sourcepub fn from_components<H>((lightness, saturation, hue): (T, T, H)) -> Self
pub fn from_components<H>((lightness, saturation, hue): (T, T, H)) -> Self
Convert from a (lightness, saturation, hue)
tuple.
sourcepub fn from_xyz<WpParam>(
color: Xyz<WpParam::StaticWp, T>,
parameters: impl Into<BakedParameters<WpParam, T::Scalar>>
) -> Selfwhere
Xyz<WpParam::StaticWp, T>: IntoCam16Unclamped<WpParam, Self, Scalar = T::Scalar>,
T: FromScalar,
WpParam: WhitePointParameter<T::Scalar>,
pub fn from_xyz<WpParam>(
color: Xyz<WpParam::StaticWp, T>,
parameters: impl Into<BakedParameters<WpParam, T::Scalar>>
) -> Selfwhere
Xyz<WpParam::StaticWp, T>: IntoCam16Unclamped<WpParam, Self, Scalar = T::Scalar>,
T: FromScalar,
WpParam: WhitePointParameter<T::Scalar>,
Derive partial CIE CAM16 attributes for the provided color, under the provided viewing conditions.
use palette::{Srgb, IntoColor, cam16::{Cam16Jsh, Parameters}};
// Customize these according to the viewing conditions:
let mut example_parameters = Parameters::default_static_wp(40.0);
let rgb = Srgb::new(0.3f32, 0.8, 0.1);
let partial = Cam16Jsh::from_xyz(rgb.into_color(), example_parameters);
It’s also possible to “pre-bake” the parameters, to avoid recalculate some of the derived values when converting multiple color value.
use palette::{Srgb, IntoColor, cam16::{Cam16Jsh, Parameters}};
// Customize these according to the viewing conditions:
let mut example_parameters = Parameters::default_static_wp(40.0);
let baked_parameters = example_parameters.bake();
let rgb = Srgb::new(0.3f32, 0.8, 0.1);
let partial = Cam16Jsh::from_xyz(rgb.into_color(), baked_parameters);
sourcepub fn into_xyz<WpParam>(
self,
parameters: impl Into<BakedParameters<WpParam, T::Scalar>>
) -> Xyz<WpParam::StaticWp, T>where
Self: Cam16IntoUnclamped<WpParam, Xyz<WpParam::StaticWp, T>, Scalar = T::Scalar>,
WpParam: WhitePointParameter<T>,
T: FromScalar,
pub fn into_xyz<WpParam>(
self,
parameters: impl Into<BakedParameters<WpParam, T::Scalar>>
) -> Xyz<WpParam::StaticWp, T>where
Self: Cam16IntoUnclamped<WpParam, Xyz<WpParam::StaticWp, T>, Scalar = T::Scalar>,
WpParam: WhitePointParameter<T>,
T: FromScalar,
Construct an XYZ color from these CIE CAM16 attributes, under the provided viewing conditions.
use palette::{Srgb, FromColor, cam16::{Cam16Jsh, Parameters}};
// Customize these according to the viewing conditions:
let mut example_parameters = Parameters::default_static_wp(40.0);
let partial = Cam16Jsh::new(50.0f32, 80.0, 120.0);
let rgb = Srgb::from_color(partial.into_xyz(example_parameters));
It’s also possible to “pre-bake” the parameters, to avoid recalculate some of the derived values when converting multiple color value.
use palette::{Srgb, FromColor, cam16::{Cam16Jsh, Parameters}};
// Customize these according to the viewing conditions:
let mut example_parameters = Parameters::default_static_wp(40.0);
let baked_parameters = example_parameters.bake();
let partial = Cam16Jsh::new(50.0f32, 80.0, 120.0);
let rgb = Srgb::from_color(partial.into_xyz(baked_parameters));
sourcepub fn from_full(full: Cam16<T>) -> Self
pub fn from_full(full: Cam16<T>) -> Self
Create a partial set of CIE CAM16 attributes.
It’s also possible to use Cam16Jsh::from
or Cam16::into
.
sourcepub fn into_full<WpParam>(
self,
parameters: impl Into<BakedParameters<WpParam, T::Scalar>>
) -> Cam16<T>
pub fn into_full<WpParam>( self, parameters: impl Into<BakedParameters<WpParam, T::Scalar>> ) -> Cam16<T>
Reconstruct a full set of CIE CAM16 attributes, using the original viewing conditions.
use palette::{Srgb, IntoColor, cam16::{Cam16, Cam16Jsh, Parameters}};
use approx::assert_relative_eq;
// Customize these according to the viewing conditions:
let mut example_parameters = Parameters::default_static_wp(40.0);
// Optional, but saves some work:
let baked_parameters = example_parameters.bake();
let rgb = Srgb::new(0.3f64, 0.8, 0.1);
let cam16 = Cam16::from_xyz(rgb.into_color(), baked_parameters);
let partial = Cam16Jsh::from(cam16);
let reconstructed = partial.into_full(baked_parameters);
assert_relative_eq!(cam16, reconstructed, epsilon = 0.0000000000001);
source§impl<C> Cam16Jsh<C>
impl<C> Cam16Jsh<C>
sourcepub fn iter<'a>(&'a self) -> <&'a Self as IntoIterator>::IntoIterwhere
&'a Self: IntoIterator,
pub fn iter<'a>(&'a self) -> <&'a Self as IntoIterator>::IntoIterwhere
&'a Self: IntoIterator,
Return an iterator over the colors in the wrapped collections.
sourcepub fn iter_mut<'a>(&'a mut self) -> <&'a mut Self as IntoIterator>::IntoIterwhere
&'a mut Self: IntoIterator,
pub fn iter_mut<'a>(&'a mut self) -> <&'a mut Self as IntoIterator>::IntoIterwhere
&'a mut Self: IntoIterator,
Return an iterator that allows modifying the colors in the wrapped collections.
sourcepub fn get<'a, I, T>(
&'a self,
index: I
) -> Option<Cam16Jsh<&<I as SliceIndex<[T]>>::Output>>
pub fn get<'a, I, T>( &'a self, index: I ) -> Option<Cam16Jsh<&<I as SliceIndex<[T]>>::Output>>
Get a color, or slice of colors, with references to the components at index
. See slice::get
for details.
sourcepub fn get_mut<'a, I, T>(
&'a mut self,
index: I
) -> Option<Cam16Jsh<&mut <I as SliceIndex<[T]>>::Output>>
pub fn get_mut<'a, I, T>( &'a mut self, index: I ) -> Option<Cam16Jsh<&mut <I as SliceIndex<[T]>>::Output>>
Get a color, or slice of colors, that allows modifying the components at index
. See slice::get_mut
for details.
source§impl<T> Cam16Jsh<Vec<T>>
impl<T> Cam16Jsh<Vec<T>>
sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Create a struct of vectors with a minimum capacity. See Vec::with_capacity
for details.
sourcepub fn push(&mut self, value: Cam16Jsh<T>)
pub fn push(&mut self, value: Cam16Jsh<T>)
Push an additional color’s components onto the component vectors. See Vec::push
for details.
sourcepub fn pop(&mut self) -> Option<Cam16Jsh<T>>
pub fn pop(&mut self) -> Option<Cam16Jsh<T>>
Pop a color’s components from the component vectors. See Vec::pop
for details.
sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Clear the component vectors. See Vec::clear
for details.
Trait Implementations§
source§impl<T> AbsDiffEq for Cam16Jsh<T>
impl<T> AbsDiffEq for Cam16Jsh<T>
source§fn default_epsilon() -> Self::Epsilon
fn default_epsilon() -> Self::Epsilon
source§fn abs_diff_eq(&self, other: &Self, epsilon: T::Epsilon) -> bool
fn abs_diff_eq(&self, other: &Self, epsilon: T::Epsilon) -> bool
source§fn abs_diff_ne(&self, other: &Self, epsilon: T::Epsilon) -> bool
fn abs_diff_ne(&self, other: &Self, epsilon: T::Epsilon) -> bool
AbsDiffEq::abs_diff_eq
.source§impl<T> AddAssign<T> for Cam16Jsh<T>
impl<T> AddAssign<T> for Cam16Jsh<T>
source§fn add_assign(&mut self, c: T)
fn add_assign(&mut self, c: T)
+=
operation. Read moresource§impl<T> AddAssign for Cam16Jsh<T>where
T: AddAssign,
impl<T> AddAssign for Cam16Jsh<T>where
T: AddAssign,
source§fn add_assign(&mut self, other: Self)
fn add_assign(&mut self, other: Self)
+=
operation. Read moresource§impl<WpParam, T> Cam16FromUnclamped<WpParam, Cam16Jsh<T>> for Cam16<T>where
WpParam: WhitePointParameter<T>,
T: Real + FromScalar + Zero + Arithmetics + Sqrt + PartialCmp + Clone,
T::Mask: LazySelect<T> + Clone,
T::Scalar: Clone,
impl<WpParam, T> Cam16FromUnclamped<WpParam, Cam16Jsh<T>> for Cam16<T>where
WpParam: WhitePointParameter<T>,
T: Real + FromScalar + Zero + Arithmetics + Sqrt + PartialCmp + Clone,
T::Mask: LazySelect<T> + Clone,
T::Scalar: Clone,
§type Scalar = <T as FromScalar>::Scalar
type Scalar = <T as FromScalar>::Scalar
parameters
when converting.source§fn cam16_from_unclamped(
cam16: Cam16Jsh<T>,
parameters: BakedParameters<WpParam, Self::Scalar>
) -> Self
fn cam16_from_unclamped( cam16: Cam16Jsh<T>, parameters: BakedParameters<WpParam, Self::Scalar> ) -> Self
color
into Self
, using the provided parameters.source§impl<WpParam, T> Cam16FromUnclamped<WpParam, Xyz<<WpParam as WhitePointParameter<T>>::StaticWp, T>> for Cam16Jsh<T>where
Xyz<WpParam::StaticWp, T>: IntoCam16Unclamped<WpParam, Cam16<T>>,
WpParam: WhitePointParameter<T>,
impl<WpParam, T> Cam16FromUnclamped<WpParam, Xyz<<WpParam as WhitePointParameter<T>>::StaticWp, T>> for Cam16Jsh<T>where
Xyz<WpParam::StaticWp, T>: IntoCam16Unclamped<WpParam, Cam16<T>>,
WpParam: WhitePointParameter<T>,
§type Scalar = <Xyz<<WpParam as WhitePointParameter<T>>::StaticWp, T> as IntoCam16Unclamped<WpParam, Cam16<T>>>::Scalar
type Scalar = <Xyz<<WpParam as WhitePointParameter<T>>::StaticWp, T> as IntoCam16Unclamped<WpParam, Cam16<T>>>::Scalar
parameters
when converting.source§fn cam16_from_unclamped(
color: Xyz<WpParam::StaticWp, T>,
parameters: BakedParameters<WpParam, Self::Scalar>
) -> Self
fn cam16_from_unclamped( color: Xyz<WpParam::StaticWp, T>, parameters: BakedParameters<WpParam, Self::Scalar> ) -> Self
color
into Self
, using the provided parameters.source§impl<T> ClampAssign for Cam16Jsh<T>where
T: ClampAssign + Zero,
impl<T> ClampAssign for Cam16Jsh<T>where
T: ClampAssign + Zero,
source§fn clamp_assign(&mut self)
fn clamp_assign(&mut self)
source§impl<T, C> Extend<Cam16Jsh<T>> for Cam16Jsh<C>where
C: Extend<T>,
impl<T, C> Extend<Cam16Jsh<T>> for Cam16Jsh<C>where
C: Extend<T>,
source§fn extend<I: IntoIterator<Item = Cam16Jsh<T>>>(&mut self, iter: I)
fn extend<I: IntoIterator<Item = Cam16Jsh<T>>>(&mut self, iter: I)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<T, V, const N: usize> From<Cam16Jsh<V>> for [Cam16Jsh<T>; N]where
Self: Default,
V: IntoScalarArray<N, Scalar = T>,
impl<T, V, const N: usize> From<Cam16Jsh<V>> for [Cam16Jsh<T>; N]where
Self: Default,
V: IntoScalarArray<N, Scalar = T>,
source§impl<WpParam, T> FromCam16Unclamped<WpParam, Cam16Jsh<T>> for Cam16<T>where
Self: Cam16FromUnclamped<WpParam, Cam16Jsh<T>>,
impl<WpParam, T> FromCam16Unclamped<WpParam, Cam16Jsh<T>> for Cam16<T>where
Self: Cam16FromUnclamped<WpParam, Cam16Jsh<T>>,
§type Scalar = <Cam16<T> as Cam16FromUnclamped<WpParam, Cam16Jsh<T>>>::Scalar
type Scalar = <Cam16<T> as Cam16FromUnclamped<WpParam, Cam16Jsh<T>>>::Scalar
parameters
when converting.source§fn from_cam16_unclamped(
cam16: Cam16Jsh<T>,
parameters: BakedParameters<WpParam, Self::Scalar>
) -> Self
fn from_cam16_unclamped( cam16: Cam16Jsh<T>, parameters: BakedParameters<WpParam, Self::Scalar> ) -> Self
cam16
into Self
, using the provided parameters.source§impl<WpParam, T> FromCam16Unclamped<WpParam, Cam16Jsh<T>> for Xyz<WpParam::StaticWp, T>where
WpParam: WhitePointParameter<T>,
T: Real + FromScalar + One + Zero + Sqrt + Powf + Abs + Signum + Arithmetics + Trigonometry + RealAngle + SignedAngle + PartialCmp + Clone,
T::Mask: LazySelect<T> + Clone,
T::Scalar: Clone,
impl<WpParam, T> FromCam16Unclamped<WpParam, Cam16Jsh<T>> for Xyz<WpParam::StaticWp, T>where
WpParam: WhitePointParameter<T>,
T: Real + FromScalar + One + Zero + Sqrt + Powf + Abs + Signum + Arithmetics + Trigonometry + RealAngle + SignedAngle + PartialCmp + Clone,
T::Mask: LazySelect<T> + Clone,
T::Scalar: Clone,
§type Scalar = <T as FromScalar>::Scalar
type Scalar = <T as FromScalar>::Scalar
parameters
when converting.source§fn from_cam16_unclamped(
cam16: Cam16Jsh<T>,
parameters: BakedParameters<WpParam, Self::Scalar>
) -> Self
fn from_cam16_unclamped( cam16: Cam16Jsh<T>, parameters: BakedParameters<WpParam, Self::Scalar> ) -> Self
cam16
into Self
, using the provided parameters.source§impl<T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Cam16Jsh<T>where
_C: IntoColorUnclamped<Self>,
impl<T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Cam16Jsh<T>where
_C: IntoColorUnclamped<Self>,
source§fn from_color_unclamped(color: Alpha<_C, _A>) -> Self
fn from_color_unclamped(color: Alpha<_C, _A>) -> Self
source§impl<T> FromColorUnclamped<Cam16<T>> for Cam16Jsh<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Jsh<T>
source§fn from_color_unclamped(val: Cam16<T>) -> Self
fn from_color_unclamped(val: Cam16<T>) -> Self
source§impl<T> FromColorUnclamped<Cam16Jsh<T>> for Cam16Jsh<T>
impl<T> FromColorUnclamped<Cam16Jsh<T>> for Cam16Jsh<T>
source§fn from_color_unclamped(val: Self) -> Self
fn from_color_unclamped(val: Self) -> Self
source§impl<T, C> FromIterator<Cam16Jsh<T>> for Cam16Jsh<C>
impl<T, C> FromIterator<Cam16Jsh<T>> for Cam16Jsh<C>
source§impl<T> HasBoolMask for Cam16Jsh<T>where
T: HasBoolMask,
impl<T> HasBoolMask for Cam16Jsh<T>where
T: HasBoolMask,
§type Mask = <T as HasBoolMask>::Mask
type Mask = <T as HasBoolMask>::Mask
Self
values.source§impl<'a, 'b, T> IntoIterator for &'a Cam16Jsh<&'b [T]>
impl<'a, 'b, T> IntoIterator for &'a Cam16Jsh<&'b [T]>
source§impl<'a, 'b, T> IntoIterator for &'a Cam16Jsh<&'b mut [T]>
impl<'a, 'b, T> IntoIterator for &'a Cam16Jsh<&'b mut [T]>
source§impl<'a, T> IntoIterator for &'a Cam16Jsh<Vec<T>>
impl<'a, T> IntoIterator for &'a Cam16Jsh<Vec<T>>
source§impl<'a, 'b, T> IntoIterator for &'a mut Cam16Jsh<&'b mut [T]>
impl<'a, 'b, T> IntoIterator for &'a mut Cam16Jsh<&'b mut [T]>
source§impl<'a, T> IntoIterator for &'a mut Cam16Jsh<Vec<T>>
impl<'a, T> IntoIterator for &'a mut Cam16Jsh<Vec<T>>
source§impl<'a, T> IntoIterator for Cam16Jsh<&'a [T]>
impl<'a, T> IntoIterator for Cam16Jsh<&'a [T]>
source§impl<'a, T> IntoIterator for Cam16Jsh<&'a mut [T]>
impl<'a, T> IntoIterator for Cam16Jsh<&'a mut [T]>
source§impl<T> IntoIterator for Cam16Jsh<Vec<T>>
impl<T> IntoIterator for Cam16Jsh<Vec<T>>
source§impl<T> IsWithinBounds for Cam16Jsh<T>
impl<T> IsWithinBounds for Cam16Jsh<T>
source§fn is_within_bounds(&self) -> T::Mask
fn is_within_bounds(&self) -> T::Mask
source§impl<T> PartialEq for Cam16Jsh<T>
impl<T> PartialEq for Cam16Jsh<T>
source§impl<T> RelativeEq for Cam16Jsh<T>
impl<T> RelativeEq for Cam16Jsh<T>
source§fn default_max_relative() -> T::Epsilon
fn default_max_relative() -> T::Epsilon
source§fn relative_eq(
&self,
other: &Self,
epsilon: T::Epsilon,
max_relative: T::Epsilon
) -> bool
fn relative_eq( &self, other: &Self, epsilon: T::Epsilon, max_relative: T::Epsilon ) -> bool
source§fn relative_ne(
&self,
other: &Self,
epsilon: T::Epsilon,
max_relative: T::Epsilon
) -> bool
fn relative_ne( &self, other: &Self, epsilon: T::Epsilon, max_relative: T::Epsilon ) -> bool
RelativeEq::relative_eq
.source§impl<T> SaturatingAdd<T> for Cam16Jsh<T>where
T: SaturatingAdd<Output = T> + Clone,
impl<T> SaturatingAdd<T> for Cam16Jsh<T>where
T: SaturatingAdd<Output = T> + Clone,
source§impl<T> SaturatingAdd for Cam16Jsh<T>where
T: SaturatingAdd<Output = T>,
impl<T> SaturatingAdd for Cam16Jsh<T>where
T: SaturatingAdd<Output = T>,
source§impl<T> SaturatingSub<T> for Cam16Jsh<T>where
T: SaturatingSub<Output = T> + Clone,
impl<T> SaturatingSub<T> for Cam16Jsh<T>where
T: SaturatingSub<Output = T> + Clone,
source§impl<T> SaturatingSub for Cam16Jsh<T>where
T: SaturatingSub<Output = T>,
impl<T> SaturatingSub for Cam16Jsh<T>where
T: SaturatingSub<Output = T>,
source§impl<T> ShiftHueAssign for Cam16Jsh<T>where
T: AddAssign,
impl<T> ShiftHueAssign for Cam16Jsh<T>where
T: AddAssign,
source§impl<T> SubAssign<T> for Cam16Jsh<T>
impl<T> SubAssign<T> for Cam16Jsh<T>
source§fn sub_assign(&mut self, c: T)
fn sub_assign(&mut self, c: T)
-=
operation. Read moresource§impl<T> SubAssign for Cam16Jsh<T>where
T: SubAssign,
impl<T> SubAssign for Cam16Jsh<T>where
T: SubAssign,
source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
-=
operation. Read moresource§impl<T> UlpsEq for Cam16Jsh<T>
impl<T> UlpsEq for Cam16Jsh<T>
source§impl<T, _A> WithAlpha<_A> for Cam16Jsh<T>where
_A: Stimulus,
impl<T, _A> WithAlpha<_A> for Cam16Jsh<T>where
_A: Stimulus,
source§fn with_alpha(self, alpha: _A) -> Self::WithAlpha
fn with_alpha(self, alpha: _A) -> Self::WithAlpha
Self
already has a transparency, it is
overwritten. Read moresource§fn without_alpha(self) -> Self::Color
fn without_alpha(self) -> Self::Color
Self::Color
has
an internal transparency field, that field will be set to
A::max_intensity()
to make it opaque. Read moresource§fn split(self) -> (Self::Color, _A)
fn split(self) -> (Self::Color, _A)
impl<T: Copy> Copy for Cam16Jsh<T>
impl<T> Eq for Cam16Jsh<T>
impl<T> Pod for Cam16Jsh<T>where
T: Pod,
Auto Trait Implementations§
impl<T> Freeze for Cam16Jsh<T>where
T: Freeze,
impl<T> RefUnwindSafe for Cam16Jsh<T>where
T: RefUnwindSafe,
impl<T> Send for Cam16Jsh<T>where
T: Send,
impl<T> Sync for Cam16Jsh<T>where
T: Sync,
impl<T> Unpin for Cam16Jsh<T>where
T: Unpin,
impl<T> UnwindSafe for Cam16Jsh<T>where
T: 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>,
§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> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
§type Bits = T
type Bits = T
Self
must have the same layout as the specified Bits
except for
the possible invalid bit patterns being checked during
is_valid_bit_pattern
.source§fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
bits
as &Self
.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> 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> FromColor<T> for Uwhere
U: FromColorUnclamped<T> + Clamp,
impl<T, U> FromColor<T> for Uwhere
U: FromColorUnclamped<T> + Clamp,
source§fn from_color(t: T) -> U
fn from_color(t: T) -> U
source§impl<T, U> FromColorMut<U> for T
impl<T, U> FromColorMut<U> for T
source§fn from_color_mut(color: &mut U) -> FromColorMutGuard<'_, T, U>
fn from_color_mut(color: &mut U) -> FromColorMutGuard<'_, T, U>
source§impl<T, U> FromColorUnclampedMut<U> for Twhere
T: FromColorUnclamped<U> + ArrayCast + Clone,
U: FromColorUnclamped<T> + ArrayCast<Array = <T as ArrayCast>::Array> + Clone,
impl<T, U> FromColorUnclampedMut<U> for Twhere
T: FromColorUnclamped<U> + ArrayCast + Clone,
U: FromColorUnclamped<T> + ArrayCast<Array = <T as ArrayCast>::Array> + Clone,
source§fn from_color_unclamped_mut(
color: &mut U
) -> FromColorUnclampedMutGuard<'_, T, U>
fn from_color_unclamped_mut( color: &mut U ) -> FromColorUnclampedMutGuard<'_, T, U>
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>,
§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> IntoColorMut<T> for U
impl<T, U> IntoColorMut<T> for U
source§fn into_color_mut(&mut self) -> FromColorMutGuard<'_, T, U>
fn into_color_mut(&mut self) -> FromColorMutGuard<'_, T, 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, U> IntoColorUnclampedMut<T> for U
impl<T, U> IntoColorUnclampedMut<T> for U
source§fn into_color_unclamped_mut(&mut self) -> FromColorUnclampedMutGuard<'_, T, U>
fn into_color_unclamped_mut(&mut self) -> FromColorUnclampedMutGuard<'_, T, U>
source§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, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
§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> TryFromColor<T> for U
impl<T, U> TryFromColor<T> for U
source§fn try_from_color(t: T) -> Result<U, OutOfBounds<U>>
fn try_from_color(t: T) -> Result<U, OutOfBounds<U>>
OutOfBounds
error is returned which contains
the unclamped color. Read moresource§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