[−][src]Struct prisma::color_space::SpacedColor
A device-dependent color with an associated color space and encoding
SpacedColor
implements Deref
and DerefMut
, allowing it to act like the underlying color transparently
in many situations.
Implementations
impl<T, C, E, S> SpacedColor<T, C, E, S> where
C: EncodableColor,
S: ColorSpace<T>,
E: ColorEncoding,
T: Float,
[src]
C: EncodableColor,
S: ColorSpace<T>,
E: ColorEncoding,
T: Float,
pub fn new(color: EncodedColor<C, E>, space: S) -> SpacedColor<T, C, E, S>
[src]
Construct a new SpacedColor
from an EncodedColor
and a ColorSpace
pub fn decompose(self) -> (EncodedColor<C, E>, S)
[src]
Decompose a SpacedColor
into the contained EncodedColor
and ColorSpace
pub fn strip_space(self) -> EncodedColor<C, E>
[src]
Returns the contained EncodedColor
without the color space.
pub fn strip(self) -> C
[src]
Returns the underlying color without an encoding or space
pub fn color(&self) -> &EncodedColor<C, E>
[src]
Returns a reference to the contained EncodedColor
pub fn color_mut(&mut self) -> &mut EncodedColor<C, E>
[src]
Returns a mutable reference to the contained EncodedColor
pub fn space(&self) -> &S
[src]
Returns a reference to the ColorSpace
impl<T, C, E, S> SpacedColor<T, C, E, S> where
C: EncodableColor + FromTuple,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: EncodableColor + FromTuple,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
pub fn from_tuple(tuple: Self::ChannelsTuple, encoding: E, space: S) -> Self
[src]
Construct a SpacedColor
from a tuple of channels, an encoding and a color space
impl<T, C, E, S> SpacedColor<T, C, E, S> where
C: EncodableColor + Broadcast,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: EncodableColor + Broadcast,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
pub fn broadcast(value: C::ChannelFormat, encoding: E, space: S) -> Self
[src]
Construct a SpacedColor
by broadcasting a value to all channels, plus an encoding and a color space
impl<T, C, E, S> SpacedColor<T, C, E, S> where
C: TranscodableColor,
S: ColorSpace<T> + ConvertToXyz<T, C, E>,
E: ColorEncoding + PartialEq,
T: PosNormalChannelScalar + FreeChannelScalar + Float,
[src]
C: TranscodableColor,
S: ColorSpace<T> + ConvertToXyz<T, C, E>,
E: ColorEncoding + PartialEq,
T: PosNormalChannelScalar + FreeChannelScalar + Float,
pub fn to_xyz(&self) -> <S as ConvertToXyz<T, C, E>>::OutputColor
[src]
Convert Self
into an Xyz
value
impl<T, E, S> SpacedColor<T, Rgb<T>, E, S> where
S: ColorSpace<T, Encoding = E> + PartialEq + Clone + ConvertFromXyz<T, Xyz<T>, OutputColor = Rgb<T>>,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float + FreeChannelScalar + PosNormalChannelScalar + ChannelFormatCast<f64>,
f64: ChannelFormatCast<T>,
[src]
S: ColorSpace<T, Encoding = E> + PartialEq + Clone + ConvertFromXyz<T, Xyz<T>, OutputColor = Rgb<T>>,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float + FreeChannelScalar + PosNormalChannelScalar + ChannelFormatCast<f64>,
f64: ChannelFormatCast<T>,
pub fn from_xyz(from: &Xyz<T>, space: S) -> Self
[src]
Construct Self
from an Xyz
value and a color space
impl<T, E, S> SpacedColor<T, Rgba<T>, E, S> where
S: ColorSpace<T, Encoding = E> + PartialEq + Clone + ConvertFromXyz<T, Xyza<T>, OutputColor = Rgba<T>>,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float + FreeChannelScalar + PosNormalChannelScalar + ChannelFormatCast<f64>,
f64: ChannelFormatCast<T>,
[src]
S: ColorSpace<T, Encoding = E> + PartialEq + Clone + ConvertFromXyz<T, Xyza<T>, OutputColor = Rgba<T>>,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float + FreeChannelScalar + PosNormalChannelScalar + ChannelFormatCast<f64>,
f64: ChannelFormatCast<T>,
pub fn from_xyza(from: &Xyza<T>, space: S) -> Self
[src]
Construct Self
from an Xyz
value and a color space
Methods from Deref<Target = EncodedColor<C, E>>
pub fn color(&self) -> &C
[src]
Returns a reference to the color object
pub fn color_mut(&mut self) -> &mut C
[src]
Returns a mutable reference to the color object
pub fn encoding(&self) -> &E
[src]
Returns a reference to the encoding object
Trait Implementations
impl<T, C, E, S> AbsDiffEq<SpacedColor<T, C, E, S>> for SpacedColor<T, C, E, S> where
C: EncodableColor + AbsDiffEq,
S: ColorSpace<T> + PartialEq,
E: ColorEncoding + PartialEq,
T: Float,
[src]
C: EncodableColor + AbsDiffEq,
S: ColorSpace<T> + PartialEq,
E: ColorEncoding + PartialEq,
T: Float,
type Epsilon = C::Epsilon
Used for specifying relative comparisons.
fn default_epsilon() -> Self::Epsilon
[src]
fn abs_diff_eq(&self, other: &Self, epsilon: Self::Epsilon) -> bool
[src]
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
[src]
impl<T, C, E, S> Bounded for SpacedColor<T, C, E, S> where
C: Color + EncodableColor + Bounded,
S: ColorSpace<T> + PartialEq,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: Color + EncodableColor + Bounded,
S: ColorSpace<T> + PartialEq,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
fn normalize(self) -> Self
[src]
fn is_normalized(&self) -> bool
[src]
impl<T: Clone + Float, Color: Clone, Encoding: Clone, Space: Clone + ColorSpace<T>> Clone for SpacedColor<T, Color, Encoding, Space>
[src]
fn clone(&self) -> SpacedColor<T, Color, Encoding, Space>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<T, C, E, S> Color for SpacedColor<T, C, E, S> where
C: Color + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: Color + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
type Tag = C::Tag
The unique tag unit struct identifying the color type
type ChannelsTuple = C::ChannelsTuple
A tuple of types for each channel in the color
fn num_channels() -> u32
[src]
fn to_tuple(self) -> Self::ChannelsTuple
[src]
impl<T, C, E, S> Color3 for SpacedColor<T, C, E, S> where
C: Color3 + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: Color3 + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
impl<T, C, E, S> Color4 for SpacedColor<T, C, E, S> where
C: Color4 + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: Color4 + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
impl<T: Debug + Float, Color: Debug, Encoding: Debug, Space: Debug + ColorSpace<T>> Debug for SpacedColor<T, Color, Encoding, Space>
[src]
impl<T, C, E, S> Deref for SpacedColor<T, C, E, S> where
C: Color + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: Color + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
type Target = EncodedColor<C, E>
The resulting type after dereferencing.
fn deref(&self) -> &Self::Target
[src]
impl<T, C, E, S> DerefMut for SpacedColor<T, C, E, S> where
C: Color + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: Color + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
impl<T, C, E, S> EncodableColor for SpacedColor<T, C, E, S> where
C: Color + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: Color + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
fn encoded_as<E>(self, encoding: E) -> EncodedColor<Self, E> where
E: ColorEncoding,
[src]
E: ColorEncoding,
fn linear(self) -> EncodedColor<Self, LinearEncoding>
[src]
fn srgb_encoded(self) -> EncodedColor<Self, SrgbEncoding>
[src]
fn gamma_encoded<T: Float>(
self,
gamma: T
) -> EncodedColor<Self, GammaEncoding<T>>
[src]
self,
gamma: T
) -> EncodedColor<Self, GammaEncoding<T>>
impl<T: Eq + Float, Color: Eq, Encoding: Eq, Space: Eq + ColorSpace<T>> Eq for SpacedColor<T, Color, Encoding, Space>
[src]
impl<T, C, E, S, C2> FromColor<SpacedColor<T, C2, E, S>> for SpacedColor<T, C, E, S> where
C: Color + EncodableColor + FromColor<C2>,
C2: Color + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: Color + EncodableColor + FromColor<C2>,
C2: Color + EncodableColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
fn from_color(from: &SpacedColor<T, C2, E, S>) -> Self
[src]
impl<T, C, E, S, A> FromHsi<SpacedColor<T, Hsi<T, A>, E, S>> for SpacedColor<T, C, E, S> where
C: Color + EncodableColor + FromHsi<Hsi<T, A>>,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PosNormalChannelScalar + Float,
A: Angle<Scalar = T> + AngularChannelScalar,
[src]
C: Color + EncodableColor + FromHsi<Hsi<T, A>>,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PosNormalChannelScalar + Float,
A: Angle<Scalar = T> + AngularChannelScalar,
fn from_hsi(
from: &SpacedColor<T, Hsi<T, A>, E, S>,
out_of_gamut_mode: HsiOutOfGamutMode
) -> Self
[src]
from: &SpacedColor<T, Hsi<T, A>, E, S>,
out_of_gamut_mode: HsiOutOfGamutMode
) -> Self
impl<T, C, E, S, M> FromYCbCr<SpacedColor<T, YCbCr<T, M>, E, S>> for SpacedColor<T, C, E, S> where
C: Color + EncodableColor + FromYCbCr<YCbCr<T, M>>,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PosNormalChannelScalar + Float,
M: YCbCrModel<T> + Clone,
[src]
C: Color + EncodableColor + FromYCbCr<YCbCr<T, M>>,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PosNormalChannelScalar + Float,
M: YCbCrModel<T> + Clone,
fn from_ycbcr(
from: &SpacedColor<T, YCbCr<T, M>, E, S>,
out_of_gamut_mode: YCbCrOutOfGamutMode
) -> Self
[src]
from: &SpacedColor<T, YCbCr<T, M>, E, S>,
out_of_gamut_mode: YCbCrOutOfGamutMode
) -> Self
impl<T, C, E, S> Invert for SpacedColor<T, C, E, S> where
C: Color + EncodableColor + Invert,
S: ColorSpace<T> + PartialEq,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: Color + EncodableColor + Invert,
S: ColorSpace<T> + PartialEq,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
impl<T, C, E, S> Lerp for SpacedColor<T, C, E, S> where
C: Color + EncodableColor + Lerp,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: Color + EncodableColor + Lerp,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
type Position = C::Position
The type of the pos
argument
fn lerp(&self, right: &Self, pos: Self::Position) -> Self
[src]
impl<T: PartialEq + Float, Color: PartialEq, Encoding: PartialEq, Space: PartialEq + ColorSpace<T>> PartialEq<SpacedColor<T, Color, Encoding, Space>> for SpacedColor<T, Color, Encoding, Space>
[src]
fn eq(&self, other: &SpacedColor<T, Color, Encoding, Space>) -> bool
[src]
fn ne(&self, other: &SpacedColor<T, Color, Encoding, Space>) -> bool
[src]
impl<T, C, E, S> PolarColor for SpacedColor<T, C, E, S> where
C: Color + EncodableColor + PolarColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
[src]
C: Color + EncodableColor + PolarColor,
S: ColorSpace<T> + PartialEq + Clone,
E: ColorEncoding + PartialEq,
T: PartialEq + Clone + Float,
type Angular = C::Angular
The angular channel's scalar type
type Cartesian = C::Cartesian
The remaining channels' scalar types
impl<T, C, E, S> RelativeEq<SpacedColor<T, C, E, S>> for SpacedColor<T, C, E, S> where
C: EncodableColor + RelativeEq,
S: ColorSpace<T> + PartialEq,
E: ColorEncoding + PartialEq,
T: Float,
[src]
C: EncodableColor + RelativeEq,
S: ColorSpace<T> + PartialEq,
E: ColorEncoding + PartialEq,
T: Float,
fn default_max_relative() -> Self::Epsilon
[src]
fn relative_eq(
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
[src]
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
fn relative_ne(
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
[src]
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
impl<T: Float, Color, Encoding, Space: ColorSpace<T>> StructuralEq for SpacedColor<T, Color, Encoding, Space>
[src]
impl<T: Float, Color, Encoding, Space: ColorSpace<T>> StructuralPartialEq for SpacedColor<T, Color, Encoding, Space>
[src]
impl<T, C, E, S> UlpsEq<SpacedColor<T, C, E, S>> for SpacedColor<T, C, E, S> where
C: EncodableColor + UlpsEq,
S: ColorSpace<T> + PartialEq,
E: ColorEncoding + PartialEq,
T: Float,
[src]
C: EncodableColor + UlpsEq,
S: ColorSpace<T> + PartialEq,
E: ColorEncoding + PartialEq,
T: Float,
Auto Trait Implementations
impl<T, Color, Encoding, Space> RefUnwindSafe for SpacedColor<T, Color, Encoding, Space> where
Color: RefUnwindSafe,
Encoding: RefUnwindSafe,
Space: RefUnwindSafe,
T: RefUnwindSafe,
Color: RefUnwindSafe,
Encoding: RefUnwindSafe,
Space: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, Color, Encoding, Space> Send for SpacedColor<T, Color, Encoding, Space> where
Color: Send,
Encoding: Send,
Space: Send,
T: Send,
Color: Send,
Encoding: Send,
Space: Send,
T: Send,
impl<T, Color, Encoding, Space> Sync for SpacedColor<T, Color, Encoding, Space> where
Color: Sync,
Encoding: Sync,
Space: Sync,
T: Sync,
Color: Sync,
Encoding: Sync,
Space: Sync,
T: Sync,
impl<T, Color, Encoding, Space> Unpin for SpacedColor<T, Color, Encoding, Space> where
Color: Unpin,
Encoding: Unpin,
Space: Unpin,
T: Unpin,
Color: Unpin,
Encoding: Unpin,
Space: Unpin,
T: Unpin,
impl<T, Color, Encoding, Space> UnwindSafe for SpacedColor<T, Color, Encoding, Space> where
Color: UnwindSafe,
Encoding: UnwindSafe,
Space: UnwindSafe,
T: UnwindSafe,
Color: UnwindSafe,
Encoding: UnwindSafe,
Space: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,