File tree Expand file tree Collapse file tree 6 files changed +48
-0
lines changed
Expand file tree Collapse file tree 6 files changed +48
-0
lines changed Original file line number Diff line number Diff line change @@ -174,6 +174,14 @@ impl f32: num::Num {
174174 static pure fn from_int( n: int ) -> f32 { return n as f32 ; }
175175}
176176
177+ impl f32 : num:: Zero {
178+ static pure fn zero( ) -> f32 { 0.0 }
179+ }
180+
181+ impl f32 : num:: One {
182+ static pure fn one( ) -> f32 { 1.0 }
183+ }
184+
177185//
178186// Local Variables:
179187// mode: rust
Original file line number Diff line number Diff line change @@ -193,6 +193,14 @@ impl f64: num::Num {
193193 static pure fn from_int( n: int ) -> f64 { return n as f64 ; }
194194}
195195
196+ impl f64 : num:: Zero {
197+ static pure fn zero( ) -> f64 { 0.0 }
198+ }
199+
200+ impl f64 : num:: One {
201+ static pure fn one( ) -> f64 { 1.0 }
202+ }
203+
196204//
197205// Local Variables:
198206// mode: rust
Original file line number Diff line number Diff line change @@ -443,6 +443,14 @@ impl float: num::Num {
443443 static pure fn from_int( & self , n: int ) -> float { return n as float ; }
444444}
445445
446+ impl float: num:: Zero {
447+ static pure fn zero( ) -> float { 0 . 0 }
448+ }
449+
450+ impl float: num:: One {
451+ static pure fn one( ) -> float { 1 . 0 }
452+ }
453+
446454#[ test]
447455pub fn test_from_str ( ) {
448456 assert from_str ( ~"3 ") == Some ( 3. ) ;
Original file line number Diff line number Diff line change @@ -91,6 +91,14 @@ impl T: num::Num {
9191 static pure fn from_int( n: int ) -> T { return n as T ; }
9292}
9393
94+ impl T : num:: Zero {
95+ static pure fn zero( ) -> T { 0 }
96+ }
97+
98+ impl T : num:: One {
99+ static pure fn one( ) -> T { 1 }
100+ }
101+
94102impl T : iter:: Times {
95103 #[ inline( always) ]
96104 #[ doc = "A convenience form for basic iteration. Given a variable `x` \
Original file line number Diff line number Diff line change @@ -22,3 +22,11 @@ pub trait Num {
2222 pure fn to_int ( & self ) -> int ;
2323 static pure fn from_int ( n : int ) -> self ;
2424}
25+
26+ pub trait Zero {
27+ static pure fn zero( ) -> self ;
28+ }
29+
30+ pub trait One {
31+ static pure fn one( ) -> self ;
32+ }
Original file line number Diff line number Diff line change @@ -85,6 +85,14 @@ impl T: num::Num {
8585 static pure fn from_int( n: int ) -> T { return n as T ; }
8686}
8787
88+ impl T : num:: Zero {
89+ static pure fn zero( ) -> T { 0 }
90+ }
91+
92+ impl T : num:: One {
93+ static pure fn one( ) -> T { 1 }
94+ }
95+
8896impl T : iter:: Times {
8997 #[ inline( always) ]
9098 #[ doc = "A convenience form for basic iteration. Given a variable `x` \
You can’t perform that action at this time.
0 commit comments