[][src]Struct prisma::color_space::SpacedColor

pub struct SpacedColor<T: Float, Color, Encoding, Space: ColorSpace<T>> { /* fields omitted */ }

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]

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]

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]

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]

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]

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]

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]

type Epsilon = C::Epsilon

Used for specifying relative comparisons.

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]

impl<T: Clone + Float, Color: Clone, Encoding: Clone, Space: Clone + ColorSpace<T>> Clone for SpacedColor<T, Color, Encoding, Space>[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]

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

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]

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]

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]

type Target = EncodedColor<C, E>

The resulting type after dereferencing.

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]

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]

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]

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]

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]

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]

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]

type Position = C::Position

The type of the pos argument

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]

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]

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]

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]

Auto Trait Implementations

impl<T, Color, Encoding, Space> RefUnwindSafe for SpacedColor<T, Color, Encoding, Space> where
    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

impl<T, Color, Encoding, Space> Sync for SpacedColor<T, Color, Encoding, Space> where
    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

impl<T, Color, Encoding, Space> UnwindSafe for SpacedColor<T, Color, Encoding, Space> where
    Color: UnwindSafe,
    Encoding: UnwindSafe,
    Space: UnwindSafe,
    T: UnwindSafe

Blanket Implementations

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> Into<U> for T where
    U: From<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> 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.