From 128e645a208affd063e3fe5d31e77d5a307b08d8 Mon Sep 17 00:00:00 2001 From: Brendan Zabarauskas Date: Tue, 9 Jul 2013 17:05:19 +1000 Subject: [PATCH] Relax type bounds --- src/color/channel.rs | 2 +- src/color/hsv.rs | 7 ++++--- src/color/hsva.rs | 9 +++++---- src/color/rgb.rs | 6 +++--- src/color/rgba.rs | 6 +++--- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/color/channel.rs b/src/color/channel.rs index 227b1c9..a0822bd 100644 --- a/src/color/channel.rs +++ b/src/color/channel.rs @@ -14,7 +14,7 @@ // limitations under the License. /// A color channel -pub trait Channel: Num + ToChannel{ +pub trait Channel: Num + ToChannel { /// Convert a channel to the enclosing type /// /// # Example diff --git a/src/color/hsv.rs b/src/color/hsv.rs index 65b2fe0..677aaee 100644 --- a/src/color/hsv.rs +++ b/src/color/hsv.rs @@ -15,7 +15,8 @@ use std::num; -use color::{Channel, FloatChannel}; +use color::{Channel, ToChannel}; +use color::{FloatChannel, ToFloatChannel}; use color::{RGB, ToRGB}; #[path = "../num_macros.rs"] @@ -34,7 +35,7 @@ pub trait ToHSV { pub fn to_hsv(&self) -> HSV; } -impl ToHSV for HSV { +impl ToHSV for HSV { #[inline] pub fn to_hsv(&self) -> HSV { HSV::new(FloatChannel::from((*self).h.clone()), @@ -43,7 +44,7 @@ impl ToHSV for HSV { } } -impl ToRGB for HSV { +impl ToRGB for HSV { pub fn to_rgb(&self) -> RGB { // Algorithm taken from the Wikipedia article on HSL and HSV: // http://en.wikipedia.org/wiki/HSL_and_HSV#From_HSV diff --git a/src/color/hsva.rs b/src/color/hsva.rs index 33902ee..17441f6 100644 --- a/src/color/hsva.rs +++ b/src/color/hsva.rs @@ -15,7 +15,8 @@ use std::cast; -use color::{Channel, FloatChannel}; +use color::{Channel, ToChannel}; +use color::{FloatChannel, ToFloatChannel}; use color::{HSV, ToHSV, RGB, ToRGB, RGBA, ToRGBA}; #[path = "../num_macros.rs"] @@ -35,20 +36,20 @@ pub trait ToHSVA { pub fn to_hsva(&self) -> HSVA; } -impl ToHSVA for (C, T) { +impl ToHSVA for (C, T) { #[inline] pub fn to_hsva(&self) -> HSVA { match *self { (ref c, ref a) => unsafe { cast::transmute::<(HSV, U), HSVA>( - (c.to_hsv::(), Channel::from(a.clone())) + (c.to_hsv::(), FloatChannel::from(a.clone())) ) } } } } -impl ToRGBA for HSVA { +impl ToRGBA for HSVA { #[inline] pub fn to_rgba(&self) -> RGBA { match unsafe { diff --git a/src/color/rgb.rs b/src/color/rgb.rs index 2c9c5e0..46a5337 100644 --- a/src/color/rgb.rs +++ b/src/color/rgb.rs @@ -15,7 +15,7 @@ use std::num; -use color::{Channel, FloatChannel}; +use color::{Channel, ToChannel, FloatChannel}; use color::{HSV, ToHSV}; #[path = "../num_macros.rs"] @@ -35,7 +35,7 @@ pub trait ToRGB { pub fn to_rgb(&self) -> RGB; } -impl ToRGB for RGB { +impl ToRGB for RGB { #[inline] pub fn to_rgb(&self) -> RGB { RGB::new(Channel::from((*self).r.clone()), @@ -44,7 +44,7 @@ impl ToRGB for RGB { } } -impl ToHSV for RGB { +impl ToHSV for RGB { #[inline] pub fn to_hsv(&self) -> HSV { // Algorithm taken from the Wikipedia article on HSL and HSV: diff --git a/src/color/rgba.rs b/src/color/rgba.rs index 3938091..00ce1a0 100644 --- a/src/color/rgba.rs +++ b/src/color/rgba.rs @@ -15,7 +15,7 @@ use std::cast; -use color::{Channel, FloatChannel}; +use color::{Channel, ToChannel, FloatChannel}; use color::{RGB, ToRGB, HSV, ToHSV, HSVA, ToHSVA}; #[path = "../num_macros.rs"] @@ -35,7 +35,7 @@ pub trait ToRGBA { pub fn to_rgba(&self) -> RGBA; } -impl ToRGBA for (C, T) { +impl ToRGBA for (C, T) { #[inline] pub fn to_rgba(&self) -> RGBA { match *self { @@ -48,7 +48,7 @@ impl ToRGBA for (C, T) { } } -impl ToHSVA for RGBA { +impl ToHSVA for RGBA { #[inline] pub fn to_hsva(&self) -> HSVA { match unsafe {