Struct palette::Hsl[][src]

#[repr(C)]
pub struct Hsl<S = Srgb, T = f32> where
    T: FloatComponent,
    S: RgbStandard
{ pub hue: RgbHue<T>, pub saturation: T, pub lightness: T, pub standard: PhantomData<S>, }

HSL color space.

The HSL color space can be seen as a cylindrical version of RGB, where the hue is the angle around the color cylinder, the saturation is the distance from the center, and the lightness is the height from the bottom. Its composition makes it especially good for operations like changing green to red, making a color more gray, or making it darker.

See HSV for a very similar color space, with brightness instead of lightness.

Fields

hue: RgbHue<T>

The hue of the color, in degrees. Decides if it’s red, blue, purple, etc.

saturation: T

The colorfulness of the color. 0.0 gives gray scale colors and 1.0 will give absolutely clear colors.

lightness: T

Decides how light the color will look. 0.0 will be black, 0.5 will give a clear color, and 1.0 will give white.

standard: PhantomData<S>

The white point and RGB primaries this color is adapted to. The default is the sRGB standard.

Implementations

impl<T> Hsl<Srgb, T> where
    T: FloatComponent
[src]

pub fn new<H: Into<RgbHue<T>>>(
    hue: H,
    saturation: T,
    lightness: T
) -> Hsl<Srgb, T>
[src]

HSL for linear sRGB.

impl<S, T> Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

pub fn with_wp<H: Into<RgbHue<T>>>(
    hue: H,
    saturation: T,
    lightness: T
) -> Hsl<S, T>
[src]

Linear HSL.

pub fn into_components(self) -> (RgbHue<T>, T, T)[src]

Convert to a (hue, saturation, lightness) tuple.

pub fn from_components<H: Into<RgbHue<T>>>(
    (hue, saturation, lightness): (H, T, T)
) -> Self
[src]

Convert from a (hue, saturation, lightness) tuple.

pub fn min_saturation() -> T[src]

Return the saturation value minimum.

pub fn max_saturation() -> T[src]

Return the saturation value maximum.

pub fn min_lightness() -> T[src]

Return the lightness value minimum.

pub fn max_lightness() -> T[src]

Return the lightness value maximum.

Trait Implementations

impl<S, T> AbsDiffEq<Hsl<S, T>> for Hsl<S, T> where
    T: FloatComponent + AbsDiffEq,
    T::Epsilon: Copy + Float + FromF64,
    S: RgbStandard + PartialEq
[src]

type Epsilon = T::Epsilon

Used for specifying relative comparisons.

impl<S, T> Add<Hsl<S, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Output = Hsl<S, T>

The resulting type after applying the + operator.

impl<S, T> Add<T> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Output = Hsl<S, T>

The resulting type after applying the + operator.

impl<S, T> AddAssign<Hsl<S, T>> for Hsl<S, T> where
    T: FloatComponent + AddAssign,
    S: RgbStandard
[src]

impl<S, T> AddAssign<T> for Hsl<S, T> where
    T: FloatComponent + AddAssign,
    S: RgbStandard
[src]

impl<S, T, P: ?Sized> AsMut<P> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    P: RawPixel<T>, 
[src]

impl<S, T, P: ?Sized> AsRef<P> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    P: RawPixel<T>, 
[src]

impl<S, T> Clamp for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> Clone for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S: Debug, T: Debug> Debug for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> Default for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S: RgbStandard, T: FloatComponent, H: Into<RgbHue<T>>> From<(H, T, T)> for Hsl<S, T>[src]

impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    _C: IntoColorUnclamped<Self>,
    _A: Component
[src]

impl<S, T> FromColorUnclamped<Hsl<S, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> FromColorUnclamped<Hsl<S, T>> for Hwb<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Hsl<S, T>> for Rgb<S, T> where
    S: RgbStandard,
    T: FloatComponent
[src]

impl<S1, S2, T> FromColorUnclamped<Hsl<S1, T>> for Hsl<S2, T> where
    T: FloatComponent,
    S1: RgbStandard,
    S2: RgbStandard,
    S1::Space: RgbSpace<WhitePoint = <S2::Space as RgbSpace>::WhitePoint>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsl<_S, T>> for Hsluv<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsl<_S, T>> for Lab<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsl<_S, T>> for Lch<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsl<_S, T>> for Lchuv<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T, _S> FromColorUnclamped<Hsl<_S, T>> for Luma<S, T> where
    T: Component,
    S: LumaStandard,
    T: FloatComponent,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = S::WhitePoint>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsl<_S, T>> for Luv<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsl<_S, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsl<_S, T>> for Yxy<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T> FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Hsv<S, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> FromColorUnclamped<Hwb<S, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T, _S> FromColorUnclamped<Luma<_S, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent,
    _S: LumaStandard<WhitePoint = <S::Space as RgbSpace>::WhitePoint>, 
[src]

impl<S, T> FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Rgb<S, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> GetHue for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Hue = RgbHue<T>

The kind of hue unit this color space uses. Read more

impl<S, T> Hue for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S: RgbStandard, T: FloatComponent> Into<(RgbHue<T>, T, T)> for Hsl<S, T>[src]

impl<S, T> Mix for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Scalar = T

The type of the mixing factor.

impl<S, T> PartialEq<Hsl<S, T>> for Hsl<S, T> where
    T: FloatComponent + PartialEq,
    S: RgbStandard
[src]

impl<S, T> Pixel<T> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> RelativeContrast for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Scalar = T

The type of the contrast ratio.

impl<S, T> RelativeEq<Hsl<S, T>> for Hsl<S, T> where
    T: FloatComponent + RelativeEq,
    T::Epsilon: Copy + Float + FromF64,
    S: RgbStandard + PartialEq
[src]

impl<S, T> Saturate for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Scalar = T

The type of the (de)saturation modifier.

impl<S, T> Shade for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Scalar = T

The type of the lighten/darken modifier.

impl<S, T> Sub<Hsl<S, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Output = Hsl<S, T>

The resulting type after applying the - operator.

impl<S, T> Sub<T> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Output = Hsl<S, T>

The resulting type after applying the - operator.

impl<S, T> SubAssign<Hsl<S, T>> for Hsl<S, T> where
    T: FloatComponent + SubAssign,
    S: RgbStandard
[src]

impl<S, T> SubAssign<T> for Hsl<S, T> where
    T: FloatComponent + SubAssign,
    S: RgbStandard
[src]

impl<S, T> UlpsEq<Hsl<S, T>> for Hsl<S, T> where
    T: FloatComponent + UlpsEq,
    T::Epsilon: Copy + Float + FromF64,
    S: RgbStandard + PartialEq
[src]

impl<S, T, _A> WithAlpha<_A> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    _A: Component
[src]

type Color = Self

The opaque color type, without any transparency. Read more

type WithAlpha = Alpha<Self, _A>

The color type with transparency applied. Read more

impl<S, T> Copy for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> Eq for Hsl<S, T> where
    T: FloatComponent + Eq,
    S: RgbStandard
[src]

Auto Trait Implementations

impl<S, T> RefUnwindSafe for Hsl<S, T> where
    S: RefUnwindSafe,
    T: RefUnwindSafe

impl<S, T> Send for Hsl<S, T> where
    S: Send,
    T: Send

impl<S, T> Sync for Hsl<S, T> where
    S: Sync,
    T: Sync

impl<S, T> Unpin for Hsl<S, T> where
    S: Unpin,
    T: Unpin

impl<S, T> UnwindSafe for Hsl<S, T> where
    S: UnwindSafe,
    T: UnwindSafe

Blanket Implementations

impl<S, D, Swp, Dwp, T> AdaptFrom<S, Swp, Dwp, T> for D where
    T: FloatComponent,
    S: IntoColorUnclamped<Xyz<Swp, T>>,
    Swp: WhitePoint,
    Dwp: WhitePoint,
    D: FromColorUnclamped<Xyz<Dwp, T>>, 
[src]

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
    T: FloatComponent,
    Swp: WhitePoint,
    Dwp: WhitePoint,
    D: AdaptFrom<S, Swp, Dwp, T>, 
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> FromColor<T> for U where
    U: FromColorUnclamped<T> + Clamp
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> IntoColor<U> for T where
    U: FromColor<T>, 
[src]

impl<T, U> IntoColorUnclamped<U> for T where
    U: FromColorUnclamped<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryFromColor<T> for U where
    U: FromColorUnclamped<T> + Clamp
[src]

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T, U> TryIntoColor<U> for T where
    U: TryFromColor<T>, 
[src]