Brendan Zabarauskas
6cc7107aa6
Add Orderable trait
...
This is a temporary trait until we have default methods. We don't want to encumber all implementors of Ord by requiring them to implement these functions, but at the same time we want to be able to take advantage of the speed of the specific numeric functions (like the `fmin` and `fmax` intrinsics).
2013-04-27 01:01:53 +10:00
Brendan Zabarauskas
6efbbf2e14
Combine PrimitiveInt, Int, and Uint traits into one single trait
...
Having three traits for primitive ints/uints seemed rather excessive. If users wish to specify between them they can simply combine Int with either the Signed and Unsigned traits. For example: fn foo<T: Int + Signed>() { … }
2013-04-26 19:56:11 +10:00
Brendan Zabarauskas
d0737451fc
Add BitCount trait
2013-04-26 16:27:51 +10:00
Brendan Zabarauskas
4c07f5e457
Add Int, Uint and Float traits for primitive numbers
2013-04-26 10:22:08 +10:00
Brendan Zabarauskas
b62421000c
Add Bitwise, Bounded, Primitive, and PrimitiveInt traits
2013-04-26 10:02:00 +10:00
Brendan Zabarauskas
48c24188f9
Restore Round trait and move appropriate methods out of Real
2013-04-25 11:53:04 +10:00
Brendan Zabarauskas
dcd49ccd0b
Add Fractional, Real and RealExt traits
2013-04-25 08:20:01 +10:00
Brendan Zabarauskas
024bf2ec72
Rename Natural to Integer
...
'Natural' normally means 'positive integer' in mathematics. It is therefore strange to implement it on signed integer types. 'Integer' is probably a better choice.
2013-04-25 08:20:00 +10:00
Brendan Zabarauskas
d4868ee740
Use #[cfg(not(stage0))] to exclude items from stage0
...
As requested on the mailing list: https://mail.mozilla.org/pipermail/rust-dev/2013-April/003713.html
2013-04-25 08:20:00 +10:00
Brendan Zabarauskas
f39152e07b
Implement Natural trait
...
This adds the following methods to ints and uints:
- div
- modulo
- div_mod
- quot_rem
- gcd
- lcm
- divisible_by
- is_even
- is_odd
I have not implemented Natural for BigInt and BigUInt because they're a little over my head.
2013-04-24 14:18:01 +10:00
Brendan Zabarauskas
aef249056e
Implement Signed and Unsigned traits and remove related predicate functions
2013-04-24 12:46:26 +10:00
bors
05f9586d06
auto merge of #5980 : Kimundi/rust/ascii-encoding, r=thestinger
...
Added Ascii type to use for byte inputs that are known to contain Ascii only.
2013-04-22 16:33:51 -07:00
Marvin Löbel
582a05fc95
Moved ascii out of str
...
Removed deriving Ord, which allowed to remove the stage markers
2013-04-22 21:42:25 +02:00
Brendan Zabarauskas
01eb5e8ad3
Rename Div operator trait to Quot and Modulo operator trait to Rem
2013-04-22 01:58:53 +10:00
Marvin Löbel
61ffee738d
Added Ascii type
2013-04-20 22:51:55 +02:00
Patrick Walton
c995a62d44
librustc: WIP patch for using the return value.
2013-04-19 12:00:08 -07:00
Patrick Walton
9738c2a45c
test: Rewrite nbody and spectralnorm shootout benchmarks
2013-04-19 11:56:52 -07:00
Brendan Zabarauskas
ce6ee7bb04
Restore Num trait
...
This restores the trait that was lost in 216e85fadf
. It will eventually be broken up into a more fine-grained trait hierarchy in the future once a design can be agreed upon.
2013-04-14 02:19:35 +10:00
Patrick Walton
ef56aa62fb
libcore: Add print
and println
to the prelude
2013-03-28 19:16:06 -07:00
Daniel Micay
d2b267bcb5
add a TotalEq trait
2013-03-27 17:29:10 -04:00
Brian Anderson
113fbfc795
core: Clarify prelude docs. #4556
2013-03-26 11:47:52 -07:00
Marvin Löbel
ee2f3d9673
Switched over substr and trim functions in str to be non-allocating, temporary renamed them to better track use-sites
2013-03-21 23:06:04 +01:00
Graydon Hoare
bb9e1e2660
core: add Reader, Writer, ReaderUtil, WriterUtil to prelude. Close #4182 .
2013-03-20 13:48:57 -07:00
bors
c3fe0b97de
auto merge of #5369 : thestinger/rust/iter, r=z0w0
...
This can eventually be implemented on other sequence containers like `deque` (it's missing `each` too at the moment).
2013-03-14 19:06:47 -07:00
Daniel Micay
c64a5d2d37
add a trait for mutable iterators
2013-03-13 21:29:48 -04:00
Brian Anderson
34113dcf6a
core: Add spawn, stream and friends to prelude. #5299
2013-03-13 18:17:12 -07:00
Brian Anderson
cb37d09f50
core: Remove logging constants
2013-03-11 23:19:42 -07:00
Alex Crichton
59de3853be
core: Remove the dvec module
2013-03-08 09:54:41 -05:00
bors
2304fe6208
auto merge of #5196 : thestinger/rust/ord, r=catamorphism
...
This allows `TreeMap`/`TreeSet` to fully express their requirements and reduces the comparisons from ~1.5 per level to 1 which really helps for string keys.
I also added `ReverseIter` to the prelude exports because I forgot when I originally added it.
2013-03-02 05:15:39 -08:00
Daniel Micay
035233a259
treemap: reimplement using TotalOrd
2013-03-02 14:10:19 -05:00
Daniel Micay
ca1ceb15b1
add a TotalOrd trait
2013-03-02 14:10:16 -05:00
Brian Anderson
bcf626812b
Rename core::private to core::unstable. #4743
2013-03-01 14:55:47 -08:00
Brian Anderson
dab6a85230
core: Extract comm from pipes. #4742
2013-02-21 17:36:54 -08:00
Marvin Löbel
3792eb2a38
Moved core::extfmt to core::private::extfmt
...
Needs a snapshot to remove stage0 extfmt export in core
2013-02-21 13:32:20 +01:00
Patrick Walton
216e85fadf
libcore: Move the numeric operations out of Num. r=brson
...
Sadly I could not use trait inheritance due to a type parameter substitution
bug.
2013-02-14 08:14:01 -08:00
bors
6727c6fb56
auto merge of #4881 : bjz/rust/incoming, r=catamorphism
2013-02-12 16:22:58 -08:00
Brendan Zabarauskas
48b2141b83
Add NumCast trait for generic numeric type casts
2013-02-11 12:33:05 +11:00
Zack Corr
4f843763a1
core: Remove GenericChan/Port from prelude. Closes #4762
2013-02-10 18:10:09 +10:00
Niko Matsakis
a32498d846
Make ~fn non-copyable, make &fn copyable, split barefn/closure types,
...
correct handling of moves for struct-record update.
Part of #3678 . Fixes #2828 , #3904 , #4719 .
2013-02-07 05:53:30 -08:00
Erick Tryzelaar
f4ed7d9b6e
core: export either::{Either,Left,Right} from the prelude
2013-02-03 21:55:51 -08:00
Erick Tryzelaar
31404364e1
core: sort each prelude.rs section
2013-02-03 21:55:51 -08:00
Brian Anderson
542bf20414
core: Remove oldcomm
2013-02-01 21:22:49 -08:00
Patrick Walton
eb4d39e1fe
libstd: Remove "dual impls" from the language and enforce coherence rules. r=brson
...
"Dual impls" are impls that are both type implementations and trait
implementations. They can lead to ambiguity and so this patch removes them
from the language.
This also enforces coherence rules. Without this patch, records can implement
traits not defined in the current crate. This patch fixes this, and updates
all of rustc to adhere to the new enforcement. Most of this patch is fixing
rustc to obey the coherence rules, which involves converting a bunch of records
to structs.
2013-01-29 10:42:45 -08:00
Daniel Micay
ec3f6e1932
implement Mutable trait for vec
2013-01-24 23:10:14 -05:00
Daniel Micay
d95c9cbe38
replace ConstVector trait with the Container trait
2013-01-24 23:02:44 -05:00
Brian Anderson
6b6acde972
Add a license check to tidy. #4018
2013-01-17 23:28:42 -08:00
Andrew Paseltiner
0de7aa5506
allow logical negation operator (!) to be overloaded
2013-01-11 14:31:44 -05:00
Erick Tryzelaar
dc7183ed0e
core: rename MutableVector to OwnedVector
2013-01-09 08:55:37 -08:00
Patrick Walton
2db3abddcd
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 22:02:35 -08:00
Patrick Walton
44ab00ee37
Revert "librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc"
...
This reverts commit a8d37af247
.
2013-01-08 19:29:16 -08:00