#[repr(C)]pub struct Okhsl<T = f32> {
pub hue: OklabHue<T>,
pub saturation: T,
pub lightness: T,
}
Expand description
A Hue/Saturation/Lightness representation of Oklab
in the sRGB
color space.
Allows
- changing hue/chroma/saturation, while keeping perceived lightness constant (like HSLuv)
- changing lightness/chroma/saturation, while keeping perceived hue constant
- changing the perceived saturation (more or less) proportionally with the numerical amount of change (unlike HSLuv)
Fields§
§hue: OklabHue<T>
The hue of the color, in degrees of a circle.
For fully saturated, bright colors
- 0° corresponds to a kind of magenta-pink (RBG #ff0188),
- 90° to a kind of yellow (RBG RGB #ffcb00)
- 180° to a kind of cyan (RBG #00ffe1) and
- 240° to a kind of blue (RBG #00aefe).
For s == 0 or v == 0, the hue is irrelevant.
saturation: T
The saturation (freedom of black or white) of the color.
0.0
corresponds to pure mixture of black and white without any color. The black to white relation depends on v.1.0
to a fully saturated color without any white.
For v == 0 the saturation is irrelevant.
lightness: T
The relative luminance of the color, where
0.0
corresponds to pure black1.0
corresponds to white
This luminance is visually similar to Cielab’s luminance for a
D65
reference white point.
Okhsv
’s value
component goes from black to non-black
– a maximally bright color in the sRGB
gamut.
Okhsl
’s lightness
component goes from black to white in the sRGB
color space.
Implementations§
source§impl<T> Okhsl<T>
impl<T> Okhsl<T>
sourcepub fn new<H: Into<OklabHue<T>>>(hue: H, saturation: T, lightness: T) -> Self
pub fn new<H: Into<OklabHue<T>>>(hue: H, saturation: T, lightness: T) -> Self
Create an Okhsl color.
sourcepub const fn new_const(hue: OklabHue<T>, saturation: T, lightness: T) -> Self
pub const fn new_const(hue: OklabHue<T>, saturation: T, lightness: T) -> Self
Create an Okhsl
color. This is the same as Okhsl::new
without the
generic hue type. It’s temporary until const fn
supports traits.
sourcepub fn into_format<U>(self) -> Okhsl<U>where
U: FromStimulus<T> + FromAngle<T>,
pub fn into_format<U>(self) -> Okhsl<U>where
U: FromStimulus<T> + FromAngle<T>,
Convert into another component type.
sourcepub fn from_format<U>(color: Okhsl<U>) -> Selfwhere
T: FromStimulus<U> + FromAngle<U>,
pub fn from_format<U>(color: Okhsl<U>) -> Selfwhere
T: FromStimulus<U> + FromAngle<U>,
Convert from another component type.
sourcepub fn into_components(self) -> (OklabHue<T>, T, T)
pub fn into_components(self) -> (OklabHue<T>, T, T)
Convert to a (h, s, l)
tuple.
sourcepub fn from_components<H: Into<OklabHue<T>>>(
(hue, saturation, lightness): (H, T, T),
) -> Self
pub fn from_components<H: Into<OklabHue<T>>>( (hue, saturation, lightness): (H, T, T), ) -> Self
Convert from a (h, s, l)
tuple.
source§impl<T> Okhsl<T>where
T: Stimulus,
impl<T> Okhsl<T>where
T: Stimulus,
sourcepub fn min_saturation() -> T
pub fn min_saturation() -> T
Return the saturation
value minimum.
sourcepub fn max_saturation() -> T
pub fn max_saturation() -> T
Return the saturation
value maximum.
sourcepub fn min_lightness() -> T
pub fn min_lightness() -> T
Return the lightness
value minimum.
sourcepub fn max_lightness() -> T
pub fn max_lightness() -> T
Return the lightness
value maximum.
source§impl<C> Okhsl<C>
impl<C> Okhsl<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<Okhsl<&<I as SliceIndex<[T]>>::Output>>
pub fn get<'a, I, T>( &'a self, index: I, ) -> Option<Okhsl<&<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<Okhsl<&mut <I as SliceIndex<[T]>>::Output>>
pub fn get_mut<'a, I, T>( &'a mut self, index: I, ) -> Option<Okhsl<&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> Okhsl<Vec<T>>
impl<T> Okhsl<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: Okhsl<T>)
pub fn push(&mut self, value: Okhsl<T>)
Push an additional color’s components onto the component vectors. See Vec::push
for details.
sourcepub fn pop(&mut self) -> Option<Okhsl<T>>
pub fn pop(&mut self) -> Option<Okhsl<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 Okhsl<T>
impl<T> AbsDiffEq for Okhsl<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 Okhsl<T>
impl<T> AddAssign<T> for Okhsl<T>
source§fn add_assign(&mut self, c: T)
fn add_assign(&mut self, c: T)
+=
operation. Read moresource§impl<T> AddAssign for Okhsl<T>where
T: AddAssign,
impl<T> AddAssign for Okhsl<T>where
T: AddAssign,
source§fn add_assign(&mut self, other: Self)
fn add_assign(&mut self, other: Self)
+=
operation. Read moresource§impl<T> ClampAssign for Okhsl<T>where
T: ClampAssign + Stimulus,
impl<T> ClampAssign for Okhsl<T>where
T: ClampAssign + Stimulus,
source§fn clamp_assign(&mut self)
fn clamp_assign(&mut self)
source§impl<'de, T> Deserialize<'de> for Okhsl<T>where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for Okhsl<T>where
T: Deserialize<'de>,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl<T, C> Extend<Okhsl<T>> for Okhsl<C>where
C: Extend<T>,
impl<T, C> Extend<Okhsl<T>> for Okhsl<C>where
C: Extend<T>,
source§fn extend<I: IntoIterator<Item = Okhsl<T>>>(&mut self, iter: I)
fn extend<I: IntoIterator<Item = Okhsl<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<Okhsl<V>> for [Okhsl<T>; N]where
Self: Default,
V: IntoScalarArray<N, Scalar = T>,
impl<T, V, const N: usize> From<Okhsl<V>> for [Okhsl<T>; N]where
Self: Default,
V: IntoScalarArray<N, Scalar = T>,
source§impl<T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Okhsl<T>where
_C: IntoColorUnclamped<Self>,
impl<T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Okhsl<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, _S> FromColorUnclamped<Hsl<_S, T>> for Okhsl<T>where
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Hsl<_S, T>> + IntoColorUnclamped<Self>,
impl<T, _S> FromColorUnclamped<Hsl<_S, T>> for Okhsl<T>where
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Hsl<_S, T>> + IntoColorUnclamped<Self>,
source§fn from_color_unclamped(color: Hsl<_S, T>) -> Self
fn from_color_unclamped(color: Hsl<_S, T>) -> Self
source§impl<T, _S> FromColorUnclamped<Hsv<_S, T>> for Okhsl<T>where
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Hsv<_S, T>> + IntoColorUnclamped<Self>,
impl<T, _S> FromColorUnclamped<Hsv<_S, T>> for Okhsl<T>where
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Hsv<_S, T>> + IntoColorUnclamped<Self>,
source§fn from_color_unclamped(color: Hsv<_S, T>) -> Self
fn from_color_unclamped(color: Hsv<_S, T>) -> Self
source§impl<T, _S> FromColorUnclamped<Hwb<_S, T>> for Okhsl<T>where
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Hwb<_S, T>> + IntoColorUnclamped<Self>,
impl<T, _S> FromColorUnclamped<Hwb<_S, T>> for Okhsl<T>where
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Hwb<_S, T>> + IntoColorUnclamped<Self>,
source§fn from_color_unclamped(color: Hwb<_S, T>) -> Self
fn from_color_unclamped(color: Hwb<_S, T>) -> Self
source§impl<T, _S> FromColorUnclamped<Luma<_S, T>> for Okhsl<T>where
_S: LumaStandard<WhitePoint = D65>,
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Luma<_S, T>> + IntoColorUnclamped<Self>,
impl<T, _S> FromColorUnclamped<Luma<_S, T>> for Okhsl<T>where
_S: LumaStandard<WhitePoint = D65>,
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Luma<_S, T>> + IntoColorUnclamped<Self>,
source§fn from_color_unclamped(color: Luma<_S, T>) -> Self
fn from_color_unclamped(color: Luma<_S, T>) -> Self
source§impl<S, T> FromColorUnclamped<Okhsl<T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Okhsl<T>> for Hsl<S, T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Hsluv<Wp, T>
impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Hsluv<Wp, T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<S, T> FromColorUnclamped<Okhsl<T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Okhsl<T>> for Hsv<S, T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<S, T> FromColorUnclamped<Okhsl<T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Okhsl<T>> for Hwb<S, T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Lab<Wp, T>
impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Lab<Wp, T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Lch<Wp, T>
impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Lch<Wp, T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Lchuv<Wp, T>
impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Lchuv<Wp, T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<S, T> FromColorUnclamped<Okhsl<T>> for Luma<S, T>where
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Self>,
impl<S, T> FromColorUnclamped<Okhsl<T>> for Luma<S, T>where
S: LumaStandard,
Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Self>,
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Luv<Wp, T>
impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Luv<Wp, T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<T> FromColorUnclamped<Okhsl<T>> for Okhsl<T>
impl<T> FromColorUnclamped<Okhsl<T>> for Okhsl<T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<T> FromColorUnclamped<Okhsl<T>> for Okhsv<T>
impl<T> FromColorUnclamped<Okhsl<T>> for Okhsv<T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<T> FromColorUnclamped<Okhsl<T>> for Okhwb<T>
impl<T> FromColorUnclamped<Okhsl<T>> for Okhwb<T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<T> FromColorUnclamped<Okhsl<T>> for Oklab<T>where
T: RealAngle + One + Zero + Arithmetics + Sqrt + MinMax + PartialOrd + HasBoolMask<Mask = bool> + Powi + Cbrt + Trigonometry + Clone,
Oklab<T>: IntoColorUnclamped<LinSrgb<T>>,
impl<T> FromColorUnclamped<Okhsl<T>> for Oklab<T>where
T: RealAngle + One + Zero + Arithmetics + Sqrt + MinMax + PartialOrd + HasBoolMask<Mask = bool> + Powi + Cbrt + Trigonometry + Clone,
Oklab<T>: IntoColorUnclamped<LinSrgb<T>>,
§See
See okhsl_to_srgb
source§fn from_color_unclamped(hsl: Okhsl<T>) -> Self
fn from_color_unclamped(hsl: Okhsl<T>) -> Self
source§impl<T> FromColorUnclamped<Okhsl<T>> for Oklch<T>
impl<T> FromColorUnclamped<Okhsl<T>> for Oklch<T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<S, T> FromColorUnclamped<Okhsl<T>> for Rgb<S, T>
impl<S, T> FromColorUnclamped<Okhsl<T>> for Rgb<S, T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Xyz<Wp, T>
impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Xyz<Wp, T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Yxy<Wp, T>
impl<Wp, T> FromColorUnclamped<Okhsl<T>> for Yxy<Wp, T>
source§fn from_color_unclamped(color: Okhsl<T>) -> Self
fn from_color_unclamped(color: Okhsl<T>) -> Self
source§impl<T> FromColorUnclamped<Okhsv<T>> for Okhsl<T>
impl<T> FromColorUnclamped<Okhsv<T>> for Okhsl<T>
source§fn from_color_unclamped(color: Okhsv<T>) -> Self
fn from_color_unclamped(color: Okhsv<T>) -> Self
source§impl<T> FromColorUnclamped<Okhwb<T>> for Okhsl<T>
impl<T> FromColorUnclamped<Okhwb<T>> for Okhsl<T>
source§fn from_color_unclamped(color: Okhwb<T>) -> Self
fn from_color_unclamped(color: Okhwb<T>) -> Self
source§impl<T> FromColorUnclamped<Oklab<T>> for Okhsl<T>where
T: Real + One + Zero + Arithmetics + Powi + Sqrt + Hypot + MinMax + Cbrt + IsValidDivisor<Mask = bool> + HasBoolMask<Mask = bool> + PartialOrd + Clone,
Oklab<T>: GetHue<Hue = OklabHue<T>> + IntoColorUnclamped<LinSrgb<T>>,
impl<T> FromColorUnclamped<Oklab<T>> for Okhsl<T>where
T: Real + One + Zero + Arithmetics + Powi + Sqrt + Hypot + MinMax + Cbrt + IsValidDivisor<Mask = bool> + HasBoolMask<Mask = bool> + PartialOrd + Clone,
Oklab<T>: GetHue<Hue = OklabHue<T>> + IntoColorUnclamped<LinSrgb<T>>,
§See
See srgb_to_okhsl
source§fn from_color_unclamped(lab: Oklab<T>) -> Self
fn from_color_unclamped(lab: Oklab<T>) -> Self
source§impl<T> FromColorUnclamped<Oklch<T>> for Okhsl<T>
impl<T> FromColorUnclamped<Oklch<T>> for Okhsl<T>
source§fn from_color_unclamped(color: Oklch<T>) -> Self
fn from_color_unclamped(color: Oklch<T>) -> Self
source§impl<T, _S> FromColorUnclamped<Rgb<_S, T>> for Okhsl<T>where
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Rgb<_S, T>> + IntoColorUnclamped<Self>,
impl<T, _S> FromColorUnclamped<Rgb<_S, T>> for Okhsl<T>where
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
D65: WhitePoint<T>,
Oklab<T>: FromColorUnclamped<Rgb<_S, T>> + IntoColorUnclamped<Self>,
source§fn from_color_unclamped(color: Rgb<_S, T>) -> Self
fn from_color_unclamped(color: Rgb<_S, T>) -> Self
source§impl<T, C> FromIterator<Okhsl<T>> for Okhsl<C>
impl<T, C> FromIterator<Okhsl<T>> for Okhsl<C>
source§impl<T> HasBoolMask for Okhsl<T>where
T: HasBoolMask,
impl<T> HasBoolMask for Okhsl<T>where
T: HasBoolMask,
source§type Mask = <T as HasBoolMask>::Mask
type Mask = <T as HasBoolMask>::Mask
Self
values.source§impl<'a, 'b, T> IntoIterator for &'a Okhsl<&'b [T]>
impl<'a, 'b, T> IntoIterator for &'a Okhsl<&'b [T]>
source§impl<'a, 'b, T> IntoIterator for &'a Okhsl<&'b mut [T]>
impl<'a, 'b, T> IntoIterator for &'a Okhsl<&'b mut [T]>
source§impl<'a, T> IntoIterator for &'a Okhsl<Vec<T>>
impl<'a, T> IntoIterator for &'a Okhsl<Vec<T>>
source§impl<'a, 'b, T> IntoIterator for &'a mut Okhsl<&'b mut [T]>
impl<'a, 'b, T> IntoIterator for &'a mut Okhsl<&'b mut [T]>
source§impl<'a, T> IntoIterator for &'a mut Okhsl<Vec<T>>
impl<'a, T> IntoIterator for &'a mut Okhsl<Vec<T>>
source§impl<'a, T> IntoIterator for Okhsl<&'a [T]>
impl<'a, T> IntoIterator for Okhsl<&'a [T]>
source§impl<'a, T> IntoIterator for Okhsl<&'a mut [T]>
impl<'a, T> IntoIterator for Okhsl<&'a mut [T]>
source§impl<T> IntoIterator for Okhsl<Vec<T>>
impl<T> IntoIterator for Okhsl<Vec<T>>
source§impl<T> IsWithinBounds for Okhsl<T>
impl<T> IsWithinBounds for Okhsl<T>
source§fn is_within_bounds(&self) -> T::Mask
fn is_within_bounds(&self) -> T::Mask
source§impl<T> Lighten for Okhsl<T>where
T: Real + Zero + MinMax + Clamp + Arithmetics + PartialCmp + Clone + Stimulus,
T::Mask: LazySelect<T>,
impl<T> Lighten for Okhsl<T>where
T: Real + Zero + MinMax + Clamp + Arithmetics + PartialCmp + Clone + Stimulus,
T::Mask: LazySelect<T>,
source§impl<T> LightenAssign for Okhsl<T>where
T: Real + Zero + MinMax + ClampAssign + AddAssign + Arithmetics + PartialCmp + Clone + Stimulus,
T::Mask: LazySelect<T>,
impl<T> LightenAssign for Okhsl<T>where
T: Real + Zero + MinMax + ClampAssign + AddAssign + Arithmetics + PartialCmp + Clone + Stimulus,
T::Mask: LazySelect<T>,
source§fn lighten_assign(&mut self, factor: T)
fn lighten_assign(&mut self, factor: T)
source§fn lighten_fixed_assign(&mut self, amount: T)
fn lighten_fixed_assign(&mut self, amount: T)
source§impl<T> RelativeContrast for Okhsl<T>
impl<T> RelativeContrast for Okhsl<T>
source§type Scalar = T
type Scalar = T
palette::color_difference::Wcag21RelativeContrast
source§fn get_contrast_ratio(self, other: Self) -> T
fn get_contrast_ratio(self, other: Self) -> T
palette::color_difference::Wcag21RelativeContrast
source§fn has_min_contrast_text(
self,
other: Self,
) -> <Self::Scalar as HasBoolMask>::Mask
fn has_min_contrast_text( self, other: Self, ) -> <Self::Scalar as HasBoolMask>::Mask
palette::color_difference::Wcag21RelativeContrast
source§fn has_min_contrast_large_text(
self,
other: Self,
) -> <Self::Scalar as HasBoolMask>::Mask
fn has_min_contrast_large_text( self, other: Self, ) -> <Self::Scalar as HasBoolMask>::Mask
palette::color_difference::Wcag21RelativeContrast
source§fn has_enhanced_contrast_text(
self,
other: Self,
) -> <Self::Scalar as HasBoolMask>::Mask
fn has_enhanced_contrast_text( self, other: Self, ) -> <Self::Scalar as HasBoolMask>::Mask
palette::color_difference::Wcag21RelativeContrast
source§fn has_enhanced_contrast_large_text(
self,
other: Self,
) -> <Self::Scalar as HasBoolMask>::Mask
fn has_enhanced_contrast_large_text( self, other: Self, ) -> <Self::Scalar as HasBoolMask>::Mask
palette::color_difference::Wcag21RelativeContrast
source§fn has_min_contrast_graphics(
self,
other: Self,
) -> <Self::Scalar as HasBoolMask>::Mask
fn has_min_contrast_graphics( self, other: Self, ) -> <Self::Scalar as HasBoolMask>::Mask
palette::color_difference::Wcag21RelativeContrast
source§impl<T> RelativeEq for Okhsl<T>
impl<T> RelativeEq for Okhsl<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> Saturate for Okhsl<T>where
T: Real + Zero + MinMax + Clamp + Arithmetics + PartialCmp + Clone + Stimulus,
T::Mask: LazySelect<T>,
impl<T> Saturate for Okhsl<T>where
T: Real + Zero + MinMax + Clamp + Arithmetics + PartialCmp + Clone + Stimulus,
T::Mask: LazySelect<T>,
source§impl<T> SaturateAssign for Okhsl<T>where
T: Real + Zero + MinMax + ClampAssign + AddAssign + Arithmetics + PartialCmp + Clone + Stimulus,
T::Mask: LazySelect<T>,
impl<T> SaturateAssign for Okhsl<T>where
T: Real + Zero + MinMax + ClampAssign + AddAssign + Arithmetics + PartialCmp + Clone + Stimulus,
T::Mask: LazySelect<T>,
source§fn saturate_assign(&mut self, factor: T)
fn saturate_assign(&mut self, factor: T)
factor
, a value
ranging from 0.0
to 1.0
. Read moresource§fn saturate_fixed_assign(&mut self, amount: T)
fn saturate_fixed_assign(&mut self, amount: T)
source§impl<T> SaturatingAdd<T> for Okhsl<T>where
T: SaturatingAdd<Output = T> + Clone,
impl<T> SaturatingAdd<T> for Okhsl<T>where
T: SaturatingAdd<Output = T> + Clone,
source§impl<T> SaturatingAdd for Okhsl<T>where
T: SaturatingAdd<Output = T>,
impl<T> SaturatingAdd for Okhsl<T>where
T: SaturatingAdd<Output = T>,
source§impl<T> SaturatingSub<T> for Okhsl<T>where
T: SaturatingSub<Output = T> + Clone,
impl<T> SaturatingSub<T> for Okhsl<T>where
T: SaturatingSub<Output = T> + Clone,
source§impl<T> SaturatingSub for Okhsl<T>where
T: SaturatingSub<Output = T>,
impl<T> SaturatingSub for Okhsl<T>where
T: SaturatingSub<Output = T>,
source§impl<T> ShiftHueAssign for Okhsl<T>where
T: AddAssign,
impl<T> ShiftHueAssign for Okhsl<T>where
T: AddAssign,
source§impl<T> SubAssign<T> for Okhsl<T>
impl<T> SubAssign<T> for Okhsl<T>
source§fn sub_assign(&mut self, c: T)
fn sub_assign(&mut self, c: T)
-=
operation. Read moresource§impl<T> SubAssign for Okhsl<T>where
T: SubAssign,
impl<T> SubAssign for Okhsl<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 Okhsl<T>
impl<T> UlpsEq for Okhsl<T>
source§impl<T, _A> WithAlpha<_A> for Okhsl<T>where
_A: Stimulus,
impl<T, _A> WithAlpha<_A> for Okhsl<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 Okhsl<T>
impl<T> Eq for Okhsl<T>
Auto Trait Implementations§
impl<T> Freeze for Okhsl<T>where
T: Freeze,
impl<T> RefUnwindSafe for Okhsl<T>where
T: RefUnwindSafe,
impl<T> Send for Okhsl<T>where
T: Send,
impl<T> Sync for Okhsl<T>where
T: Sync,
impl<T> Unpin for Okhsl<T>where
T: Unpin,
impl<T> UnwindSafe for Okhsl<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<S, D, Swp, Dwp, T> AdaptFrom<S, Swp, Dwp, T> for Dwhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
S: IntoColorUnclamped<Xyz<Swp, T>>,
D: FromColorUnclamped<Xyz<Dwp, T>>,
impl<S, D, Swp, Dwp, T> AdaptFrom<S, Swp, Dwp, T> for Dwhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
S: IntoColorUnclamped<Xyz<Swp, T>>,
D: FromColorUnclamped<Xyz<Dwp, T>>,
source§fn adapt_from_using<M>(color: S, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_from_using<M>(color: S, method: M) -> Dwhere
M: TransformMatrix<T>,
source§fn adapt_from(color: S) -> Self
fn adapt_from(color: S) -> Self
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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>,
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> 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>,
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> 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