pub trait FromColorUnclamped<T>: Sized {
    // Required method
    fn from_color_unclamped(val: T) -> Self;
}Expand description
A trait for unchecked conversion of one color from another.
See FromColor for a lossy version of this trait.
See TryFromColor for a trait that gives an error when the result
is out of bounds.
See the convert module for how to implement FromColorUnclamped for
custom colors.
Required Methods§
Sourcefn from_color_unclamped(val: T) -> Self
 
fn from_color_unclamped(val: T) -> Self
Convert from T. The resulting color might be invalid in its color space.
use palette::convert::FromColorUnclamped;
use palette::{IsWithinBounds, Lch, Srgb};
let rgb = Srgb::from_color_unclamped(Lch::new(50.0f32, 100.0, -175.0));
assert!(!rgb.is_within_bounds());Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl<T, U> FromColorUnclamped<Box<[T]>> for Box<[U]>
 
impl<T, U> FromColorUnclamped<Box<[T]>> for Box<[U]>
Source§fn from_color_unclamped(color: Box<[T]>) -> Box<[U]>
 
fn from_color_unclamped(color: Box<[T]>) -> Box<[U]>
Convert all colors in place, without reallocating.
use palette::{convert::FromColorUnclamped, SaturateAssign, Srgb, Lch};
let srgb = vec![Srgb::new(0.8f32, 1.0, 0.2), Srgb::new(0.9, 0.1, 0.3)].into_boxed_slice();
let mut lch = Box::<[Lch]>::from_color_unclamped(srgb);
lch.saturate_assign(0.1);
let srgb = Box::<[Srgb]>::from_color_unclamped(lch);Source§impl<T, U> FromColorUnclamped<Vec<T>> for Vec<U>
 
impl<T, U> FromColorUnclamped<Vec<T>> for Vec<U>
Source§fn from_color_unclamped(color: Vec<T>) -> Vec<U>
 
fn from_color_unclamped(color: Vec<T>) -> Vec<U>
Convert all colors in place, without reallocating.
use palette::{convert::FromColorUnclamped, SaturateAssign, Srgb, Lch};
let srgb = vec![Srgb::new(0.8f32, 1.0, 0.2), Srgb::new(0.9, 0.1, 0.3)];
let mut lch = Vec::<Lch>::from_color_unclamped(srgb);
lch.saturate_assign(0.1);
let srgb = Vec::<Srgb>::from_color_unclamped(lch);Implementors§
impl<C1, C2, T> FromColorUnclamped<C1> for Alpha<C2, T>
impl<S1, S2, T> FromColorUnclamped<Luma<S2, T>> for Luma<S1, T>where
    S1: LumaStandard + 'static,
    S2: LumaStandard<WhitePoint = <S1 as LumaStandard>::WhitePoint> + 'static,
    <S1 as LumaStandard>::TransferFn: FromLinear<T, T>,
    <S2 as LumaStandard>::TransferFn: IntoLinear<T, T>,
impl<S1, S2, T> FromColorUnclamped<Rgb<S2, T>> for Rgb<S1, T>where
    S1: RgbStandard + 'static,
    S2: RgbStandard + 'static,
    <S1 as RgbStandard>::TransferFn: FromLinear<T, T>,
    <S2 as RgbStandard>::TransferFn: IntoLinear<T, T>,
    <S2 as RgbStandard>::Space: RgbSpace<WhitePoint = <<S1 as RgbStandard>::Space as RgbSpace>::WhitePoint>,
    Xyz<<<S2 as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Rgb<S2, T>>,
    Rgb<S1, T>: FromColorUnclamped<Xyz<<<S1 as RgbStandard>::Space as RgbSpace>::WhitePoint, T>>,
impl<S1, S2, T> FromColorUnclamped<Hsl<S1, T>> for Hsl<S2, T>where
    S1: RgbStandard + 'static,
    S2: RgbStandard + 'static,
    <S1 as RgbStandard>::Space: RgbSpace<WhitePoint = <<S2 as RgbStandard>::Space as RgbSpace>::WhitePoint>,
    Rgb<S1, T>: FromColorUnclamped<Hsl<S1, T>>,
    Rgb<S2, T>: FromColorUnclamped<Rgb<S1, T>>,
    Hsl<S2, T>: FromColorUnclamped<Rgb<S2, T>>,
impl<S1, S2, T> FromColorUnclamped<Hsv<S1, T>> for Hsv<S2, T>where
    S1: RgbStandard + 'static,
    S2: RgbStandard + 'static,
    <S1 as RgbStandard>::Space: RgbSpace<WhitePoint = <<S2 as RgbStandard>::Space as RgbSpace>::WhitePoint>,
    Rgb<S1, T>: FromColorUnclamped<Hsv<S1, T>>,
    Rgb<S2, T>: FromColorUnclamped<Rgb<S1, T>>,
    Hsv<S2, T>: FromColorUnclamped<Rgb<S2, T>>,
impl<S1, S2, T> FromColorUnclamped<Hwb<S1, T>> for Hwb<S2, T>where
    S1: RgbStandard + 'static,
    S2: RgbStandard + 'static,
    <S1 as RgbStandard>::Space: RgbSpace<WhitePoint = <<S2 as RgbStandard>::Space as RgbSpace>::WhitePoint>,
    Hsv<S1, T>: FromColorUnclamped<Hwb<S1, T>>,
    Hsv<S2, T>: FromColorUnclamped<Hsv<S1, T>>,
    Hwb<S2, T>: FromColorUnclamped<Hsv<S2, T>>,
impl<S, St, T> FromColorUnclamped<Luma<St, T>> for Rgb<S, T>where
    S: RgbStandard + 'static,
    St: LumaStandard<WhitePoint = <<S as RgbStandard>::Space as RgbSpace>::WhitePoint> + 'static,
    <S as RgbStandard>::TransferFn: FromLinear<T, T>,
    <St as LumaStandard>::TransferFn: IntoLinear<T, T>,
    T: Clone,
impl<S, T> FromColorUnclamped<Rgb<S, T>> for Hsl<S, T>where
    T: RealAngle + Zero + One + MinMax + Arithmetics + PartialCmp + Clone,
    <T as HasBoolMask>::Mask: BoolMask + BitOps + LazySelect<T> + Clone + 'static,
impl<S, T> FromColorUnclamped<Rgb<S, T>> for Hsv<S, T>where
    T: RealAngle + One + Zero + MinMax + Arithmetics + PartialCmp + Clone,
    <T as HasBoolMask>::Mask: BoolMask + BitOps + LazySelect<T> + Clone + 'static,
impl<S, T> FromColorUnclamped<Rgb<S, T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Rgb<S, T>> for Oklab<T>where
    T: Real + Cbrt + Arithmetics + Copy,
    S: RgbStandard,
    <S as RgbStandard>::TransferFn: IntoLinear<T, T>,
    <S as RgbStandard>::Space: RgbSpace<WhitePoint = D65> + 'static,
    Xyz<D65, T>: FromColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Hsl<S, T>> for Rgb<S, T>where
    T: Real + RealAngle + UnsignedAngle + Zero + One + Abs + Round + PartialCmp + Arithmetics + Clone,
    <T as HasBoolMask>::Mask: LazySelect<T> + BitOps + Clone,
impl<S, T> FromColorUnclamped<Hsl<S, T>> for Hsv<S, T>where
    T: Real + Zero + One + IsValidDivisor + Arithmetics + PartialCmp + Clone,
    <T as HasBoolMask>::Mask: LazySelect<T>,
impl<S, T> FromColorUnclamped<Hsl<S, T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
    S: RgbStandard,
    Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
    S: RgbStandard,
    Hsv<S, T>: FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Hsluv<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>where
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Hsluv<<S as LumaStandard>::WhitePoint, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Hsv<S, T>> for Rgb<S, T>where
    T: Real + RealAngle + UnsignedAngle + Round + Zero + One + Abs + PartialCmp + Arithmetics + Clone,
    <T as HasBoolMask>::Mask: LazySelect<T> + BitOps + Clone,
impl<S, T> FromColorUnclamped<Hsv<S, T>> for Hsl<S, T>where
    T: Real + Zero + One + IsValidDivisor + Arithmetics + PartialCmp + Clone,
    <T as HasBoolMask>::Mask: LazySelect<T> + Not<Output = <T as HasBoolMask>::Mask>,
impl<S, T> FromColorUnclamped<Hsv<S, T>> for Hwb<S, T>where
    T: One + Arithmetics,
impl<S, T> FromColorUnclamped<Hwb<S, T>> for Rgb<S, T>
impl<S, T> FromColorUnclamped<Hwb<S, T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Hwb<S, T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
    S: RgbStandard,
    Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
    S: RgbStandard,
    Hsv<S, T>: FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Lab<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>where
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Lab<<S as LumaStandard>::WhitePoint, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
    S: RgbStandard,
    Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
    S: RgbStandard,
    Hsv<S, T>: FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Lch<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>where
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Lch<<S as LumaStandard>::WhitePoint, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
    S: RgbStandard,
    Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
    S: RgbStandard,
    Hsv<S, T>: FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Lchuv<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>where
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Lchuv<<S as LumaStandard>::WhitePoint, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
    S: RgbStandard,
    Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
    S: RgbStandard,
    Hsv<S, T>: FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Luv<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>where
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Luv<<S as LumaStandard>::WhitePoint, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Okhsl<T>> for Luma<S, T>where
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Okhsl<T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Okhsl<T>> for Rgb<S, T>
impl<S, T> FromColorUnclamped<Okhsl<T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Okhsl<T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Okhsl<T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Okhsv<T>> for Luma<S, T>where
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Okhsv<T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Okhsv<T>> for Rgb<S, T>
impl<S, T> FromColorUnclamped<Okhsv<T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Okhsv<T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Okhsv<T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Okhwb<T>> for Luma<S, T>where
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Okhwb<T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Okhwb<T>> for Rgb<S, T>
impl<S, T> FromColorUnclamped<Okhwb<T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Okhwb<T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Okhwb<T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Oklab<T>> for Luma<S, T>where
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Oklab<T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Oklab<T>> for Rgb<S, T>where
    T: Real + Arithmetics + Copy,
    S: RgbStandard,
    <S as RgbStandard>::TransferFn: FromLinear<T, T>,
    <S as RgbStandard>::Space: RgbSpace<WhitePoint = D65> + 'static,
    Rgb<Linear<Srgb>, T>: IntoColorUnclamped<Rgb<S, T>>,
    Xyz<D65, T>: FromColorUnclamped<Oklab<T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Oklab<T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Oklab<T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Oklab<T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Oklch<T>> for Luma<S, T>where
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Oklch<T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T> FromColorUnclamped<Oklch<T>> for Rgb<S, T>
impl<S, T> FromColorUnclamped<Oklch<T>> for Hsl<S, T>
impl<S, T> FromColorUnclamped<Oklch<T>> for Hsv<S, T>
impl<S, T> FromColorUnclamped<Oklch<T>> for Hwb<S, T>
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
    S: RgbStandard,
    <S as RgbStandard>::TransferFn: FromLinear<T, T>,
    <<S as RgbStandard>::Space as RgbSpace>::Primaries: Primaries<<T as FromScalar>::Scalar>,
    <<S as RgbStandard>::Space as RgbSpace>::WhitePoint: WhitePoint<<T as FromScalar>::Scalar>,
    T: Arithmetics + FromScalar,
    <T as FromScalar>::Scalar: Real + Recip + IsValidDivisor<Mask = bool> + Arithmetics + Clone + FromScalar<Scalar = <T as FromScalar>::Scalar>,
    Yxy<Any, <T as FromScalar>::Scalar>: IntoColorUnclamped<Xyz<Any, <T as FromScalar>::Scalar>>,
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
    S: RgbStandard,
    Hsv<S, T>: FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Xyz<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>
impl<S, T> FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Rgb<S, T>where
    S: RgbStandard,
    Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Rgb<S, T>>,
impl<S, T> FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T> FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T>where
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T> FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T>where
    S: RgbStandard,
    Hsv<S, T>: FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T> FromColorUnclamped<Yxy<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T>
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Luma<S, T>where
    _C: IntoColorUnclamped<Luma<S, T>>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Rgb<S, T>where
    _C: IntoColorUnclamped<Rgb<S, T>>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hsl<S, T>where
    _C: IntoColorUnclamped<Hsl<S, T>>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hsv<S, T>where
    _C: IntoColorUnclamped<Hsv<S, T>>,
impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hwb<S, T>where
    _C: IntoColorUnclamped<Hwb<S, T>>,
impl<S, T, _S> FromColorUnclamped<Luma<_S, T>> for Hsl<S, T>where
    _S: LumaStandard<WhitePoint = <<S as RgbStandard>::Space as RgbSpace>::WhitePoint>,
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Luma<_S, T>> + IntoColorUnclamped<Hsl<S, T>>,
impl<S, T, _S> FromColorUnclamped<Luma<_S, T>> for Hsv<S, T>where
    _S: LumaStandard<WhitePoint = <<S as RgbStandard>::Space as RgbSpace>::WhitePoint>,
    S: RgbStandard,
    Rgb<S, T>: FromColorUnclamped<Luma<_S, T>> + IntoColorUnclamped<Hsv<S, T>>,
impl<S, T, _S> FromColorUnclamped<Luma<_S, T>> for Hwb<S, T>where
    _S: LumaStandard<WhitePoint = <<S as RgbStandard>::Space as RgbSpace>::WhitePoint>,
    S: RgbStandard,
    Hsv<S, T>: FromColorUnclamped<Luma<_S, T>> + IntoColorUnclamped<Hwb<S, T>>,
impl<S, T, _S> FromColorUnclamped<Rgb<_S, T>> for Luma<S, T>where
    _S: RgbStandard,
    <_S as RgbStandard>::Space: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>,
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Rgb<_S, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T, _S> FromColorUnclamped<Hsl<_S, T>> for Luma<S, T>where
    _S: RgbStandard,
    <_S as RgbStandard>::Space: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>,
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Hsl<_S, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T, _S> FromColorUnclamped<Hsv<_S, T>> for Luma<S, T>where
    _S: RgbStandard,
    <_S as RgbStandard>::Space: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>,
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Hsv<_S, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<S, T, _S> FromColorUnclamped<Hwb<_S, T>> for Luma<S, T>where
    _S: RgbStandard,
    <_S as RgbStandard>::Space: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>,
    S: LumaStandard,
    Xyz<<S as LumaStandard>::WhitePoint, T>: FromColorUnclamped<Hwb<_S, T>> + IntoColorUnclamped<Luma<S, T>>,
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Jch<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Jmh<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Jsh<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Qch<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Qmh<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16Qsh<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16UcsJab<T>
impl<T> FromColorUnclamped<Cam16<T>> for Cam16UcsJmh<T>
impl<T> FromColorUnclamped<Cam16Jch<T>> for Cam16Jch<T>
impl<T> FromColorUnclamped<Cam16Jmh<T>> for Cam16Jmh<T>
impl<T> FromColorUnclamped<Cam16Jmh<T>> for Cam16UcsJab<T>
impl<T> FromColorUnclamped<Cam16Jmh<T>> for Cam16UcsJmh<T>
impl<T> FromColorUnclamped<Cam16Jsh<T>> for Cam16Jsh<T>
impl<T> FromColorUnclamped<Cam16Qch<T>> for Cam16Qch<T>
impl<T> FromColorUnclamped<Cam16Qmh<T>> for Cam16Qmh<T>
impl<T> FromColorUnclamped<Cam16Qsh<T>> for Cam16Qsh<T>
impl<T> FromColorUnclamped<Cam16UcsJab<T>> for Cam16Jmh<T>
impl<T> FromColorUnclamped<Cam16UcsJab<T>> for Cam16UcsJab<T>
impl<T> FromColorUnclamped<Cam16UcsJab<T>> for Cam16UcsJmh<T>
impl<T> FromColorUnclamped<Cam16UcsJmh<T>> for Cam16Jmh<T>
impl<T> FromColorUnclamped<Cam16UcsJmh<T>> for Cam16UcsJab<T>
impl<T> FromColorUnclamped<Cam16UcsJmh<T>> for Cam16UcsJmh<T>
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Okhsl<T>where
    D65: WhitePoint<T>,
    Oklab<T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Okhsl<T>>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Okhsv<T>where
    D65: WhitePoint<T>,
    Oklab<T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Okhsv<T>>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Okhwb<T>where
    D65: WhitePoint<T>,
    Okhsv<T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Okhwb<T>>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Oklab<T>where
    D65: WhitePoint<T>,
    Xyz<D65, T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Oklab<T>>,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Oklch<T>where
    D65: WhitePoint<T>,
    Oklab<T>: FromColorUnclamped<Hsluv<D65, T>> + IntoColorUnclamped<Oklch<T>>,
impl<T> FromColorUnclamped<Lab<D65, T>> for Okhsl<T>
impl<T> FromColorUnclamped<Lab<D65, T>> for Okhsv<T>
impl<T> FromColorUnclamped<Lab<D65, T>> for Okhwb<T>
impl<T> FromColorUnclamped<Lab<D65, T>> for Oklab<T>where
    D65: WhitePoint<T>,
    Xyz<D65, T>: FromColorUnclamped<Lab<D65, T>> + IntoColorUnclamped<Oklab<T>>,
impl<T> FromColorUnclamped<Lab<D65, T>> for Oklch<T>
impl<T> FromColorUnclamped<Lch<D65, T>> for Okhsl<T>
impl<T> FromColorUnclamped<Lch<D65, T>> for Okhsv<T>
impl<T> FromColorUnclamped<Lch<D65, T>> for Okhwb<T>
impl<T> FromColorUnclamped<Lch<D65, T>> for Oklab<T>where
    D65: WhitePoint<T>,
    Xyz<D65, T>: FromColorUnclamped<Lch<D65, T>> + IntoColorUnclamped<Oklab<T>>,
impl<T> FromColorUnclamped<Lch<D65, T>> for Oklch<T>
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Okhsl<T>where
    D65: WhitePoint<T>,
    Oklab<T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Okhsl<T>>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Okhsv<T>where
    D65: WhitePoint<T>,
    Oklab<T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Okhsv<T>>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Okhwb<T>where
    D65: WhitePoint<T>,
    Okhsv<T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Okhwb<T>>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Oklab<T>where
    D65: WhitePoint<T>,
    Xyz<D65, T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Oklab<T>>,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Oklch<T>where
    D65: WhitePoint<T>,
    Oklab<T>: FromColorUnclamped<Lchuv<D65, T>> + IntoColorUnclamped<Oklch<T>>,
impl<T> FromColorUnclamped<Luv<D65, T>> for Okhsl<T>
impl<T> FromColorUnclamped<Luv<D65, T>> for Okhsv<T>
impl<T> FromColorUnclamped<Luv<D65, T>> for Okhwb<T>
impl<T> FromColorUnclamped<Luv<D65, T>> for Oklab<T>where
    D65: WhitePoint<T>,
    Xyz<D65, T>: FromColorUnclamped<Luv<D65, T>> + IntoColorUnclamped<Oklab<T>>,
impl<T> FromColorUnclamped<Luv<D65, T>> for Oklch<T>
impl<T> FromColorUnclamped<Okhsl<T>> for Okhsl<T>
impl<T> FromColorUnclamped<Okhsl<T>> for Okhsv<T>
impl<T> FromColorUnclamped<Okhsl<T>> for Okhwb<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<Rgb<Linear<Srgb>, T>>,
§See
See okhsl_to_srgb
impl<T> FromColorUnclamped<Okhsl<T>> for Oklch<T>
impl<T> FromColorUnclamped<Okhsv<T>> for Okhsl<T>
impl<T> FromColorUnclamped<Okhsv<T>> for Okhsv<T>
impl<T> FromColorUnclamped<Okhsv<T>> for Okhwb<T>where
    T: One + Arithmetics,
impl<T> FromColorUnclamped<Okhsv<T>> for Oklab<T>where
    T: RealAngle + PartialOrd + HasBoolMask<Mask = bool> + MinMax + Powi + Arithmetics + Clone + One + Zero + Cbrt + Trigonometry,
    Oklab<T>: IntoColorUnclamped<Rgb<Linear<Srgb>, T>>,
impl<T> FromColorUnclamped<Okhsv<T>> for Oklch<T>
impl<T> FromColorUnclamped<Okhwb<T>> for Okhsl<T>
impl<T> FromColorUnclamped<Okhwb<T>> for Okhsv<T>
impl<T> FromColorUnclamped<Okhwb<T>> for Oklab<T>
impl<T> FromColorUnclamped<Okhwb<T>> for Oklch<T>
impl<T> FromColorUnclamped<Oklab<T>> for Okhsl<T>where
    T: Zero + Arithmetics + Powi + Sqrt + Hypot + MinMax + Cbrt + IsValidDivisor<Mask = bool, Mask = bool> + HasBoolMask + Real + PartialOrd + Clone + One,
    Oklab<T>: GetHue<Hue = OklabHue<T>> + IntoColorUnclamped<Rgb<Linear<Srgb>, T>>,
§See
See srgb_to_okhsl
impl<T> FromColorUnclamped<Oklab<T>> for Okhsv<T>where
    T: Clone + Powi + Sqrt + Cbrt + Arithmetics + Trigonometry + Zero + Hypot + One + IsValidDivisor<Mask = bool, Mask = bool> + HasBoolMask + Real + PartialOrd + MinMax,
    Oklab<T>: GetHue<Hue = OklabHue<T>> + IntoColorUnclamped<Rgb<Linear<Srgb>, T>>,
Converts lab to Okhsv in the bounds of sRGB.
§See
See srgb_to_okhsv.
This implementation differs from srgb_to_okhsv in that it starts with the lab
value and produces hues in degrees, whereas srgb_to_okhsv produces degree/360.