From 9b05325a3153fa149fc87ce7d61bb4d78ae650ba Mon Sep 17 00:00:00 2001 From: Brendan Zabarauskas Date: Thu, 29 Nov 2012 16:31:14 +1000 Subject: [PATCH] Implement ToStr for angle types --- src/angle.rs | 9 +++++++++ src/test/test_angle.rs | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/src/angle.rs b/src/angle.rs index 748ba0b..fd79fdc 100644 --- a/src/angle.rs +++ b/src/angle.rs @@ -1,5 +1,6 @@ use core::cmp::{Eq, Ord}; use core::f64::consts::pi; + use funs::triganomic::{cos, sin}; use mat::{Mat3, Mat4}; use num::cast::{NumCast, cast}; @@ -100,6 +101,10 @@ pub impl Radians: Ord { #[inline(always)] pure fn gt(&self, other: &Radians) -> bool { **self > **other } } +pub impl Radians: ToStr { + pure fn to_str() -> ~str { fmt!("%? rad", *self) } +} + @@ -174,6 +179,10 @@ pub impl Degrees: Ord { #[inline(always)] pure fn gt(&self, other: &Degrees) -> bool { **self > **other } } +pub impl Degrees: ToStr { + pure fn to_str() -> ~str { fmt!("%?\xB0", *self) } +} + diff --git a/src/test/test_angle.rs b/src/test/test_angle.rs index 3f61c0c..918b247 100644 --- a/src/test/test_angle.rs +++ b/src/test/test_angle.rs @@ -31,6 +31,8 @@ fn test_radians() { assert *(Radians(pi) / 2.0) == *Radians(pi / 2.0); assert *(Radians(3.0 * pi) % (2.0 * pi)) == *Radians(pi); assert *(-Radians(pi)) == *Radians(-pi); + + assert fmt!("%s", Radians(1).to_str()) == ~"1 rad"; } #[test] @@ -60,6 +62,8 @@ fn test_degrees() { assert (Degrees(180.0) / 2.0) == Degrees(90.0); assert (Degrees(540.0) % (360.0)) == Degrees(180.0); assert (-Degrees(180.0)) == Degrees(-180.0); + + assert fmt!("%s", Degrees(180.0).to_str()) == ~"180°"; }