Brendan Zabarauskas
d9eec664fd
Fix Ord implementation to use lexical ordering
2013-05-19 02:35:36 +10:00
Brendan Zabarauskas
db453ec0e5
Replace Tuple{2..12} trait with CloneableTuple{2..12} and ImmutableTuple{2..12}
...
Make n{0..11} methods return cloned values, and create n{0..12}_ref methods for returning references
2013-05-19 02:19:16 +10:00
Brendan Zabarauskas
ee4d11f37e
Use match instead of intermediate variable
2013-05-19 02:19:16 +10:00
Brendan Zabarauskas
ce1e211eeb
Adapt the getter macro to implement Clone, Eq and Ord for n-ary tuples
2013-05-19 02:19:16 +10:00
bors
3a323c1b2d
auto merge of #6565 : osaut/rust/futures, r=thestinger
...
* The example given in future.rs was corrected.
* I have added a small section describing futures in tutorial on tasks. It is far from being complete as I am stil learning !
(This is an updated version of PR 6537).
2013-05-18 04:07:27 -07:00
bors
eb0e2f45ec
auto merge of #6591 : bjz/rust/tuple-elements, r=thestinger
...
This commit implements element getters for tuples with an arity of 2 to 12. The getters return references to the elements, so no copying occurs. The traits are re-exported in `core::prelude` so you can use them from regular Rust code.
Here is an example of one of the getters in use:
~~~rust
assert_eq!((2, "hi", 75.0).n1(), &"hi");
~~~
2013-05-18 03:13:28 -07:00
Brendan Zabarauskas
b6038b7633
Return a reference to the tuple elements instead of copying
2013-05-18 20:05:40 +10:00
Olivier Saut
4b13895c2f
Remove trailing whitespaces
2013-05-18 11:53:51 +02:00
Brendan Zabarauskas
5242464d54
Merge trait and impl macros by using an inner module
2013-05-18 19:43:14 +10:00
Brendan Zabarauskas
c1eb539e12
Use assert_eq! instead of assert!
2013-05-18 19:10:49 +10:00
Brendan Zabarauskas
96cb0dc8a0
use n{0..11} instead of _{0..12} for accessor method names
2013-05-18 19:10:12 +10:00
Brendan Zabarauskas
6742f91192
Create tuple element accessor traits
2013-05-18 18:59:16 +10:00
Daniel Micay
d953a5ce43
replace old_iter::repeat with the Times trait
2013-05-18 04:57:21 -04:00
Daniel Micay
fc656262a9
iterator: use advance to implement FilterMapIterator
2013-05-18 04:48:22 -04:00
Daniel Micay
073225572a
iterator: reword docstring
2013-05-18 04:44:44 -04:00
Daniel Micay
883d583faa
iterator: reuse iter::to_vec, and use &mut self
2013-05-18 04:37:48 -04:00
Daniel Micay
ea8a55b821
iterator: make nth and last return Option
...
There isn't a way to take the length of any iterator, so failing on a
zero length would make these much less useful.
2013-05-18 04:35:58 -04:00
Daniel Micay
a9c465ce1f
iterator: remove first
...
it's the same as `next.unwrap()`, but there's no way to check the
length of an iterator so this isn't a good pattern
2013-05-18 04:35:48 -04:00
bors
e91daaa8a9
auto merge of #6586 : bjz/rust/formatting-and-conditionals, r=thestinger
2013-05-18 00:34:24 -07:00
Brendan Zabarauskas
ad6ee5f4e5
Use four-space indentation, add trailing commas, and remove unnecessary uses of the return keyword
2013-05-18 17:29:19 +10:00
Brendan Zabarauskas
60ea6d6957
Convert various inner doc-comments to outer doc-comments
2013-05-18 17:29:14 +10:00
Brendan Zabarauskas
728fe775a2
Use pattern-matching instead of conditionals where appropriate to improve code clarity
2013-05-18 17:29:12 +10:00
Brendan Zabarauskas
a10974da2d
Use cond! macro where appropriate
2013-05-18 17:29:07 +10:00
bors
ac74bbec93
auto merge of #6582 : catamorphism/rust/cleanup, r=catamorphism
2013-05-17 21:49:25 -07:00
Tim Chevalier
f21fb3aff5
rustc: Cleaning up bad copies and other XXXes
2013-05-17 21:41:54 -07:00
bors
799d9fa32b
auto merge of #6560 : gifnksm/rust/iterator-utils, r=thestinger
...
This pull request adds following methods and traits.
```rust
pub trait IteratorUtil {
(snip)
fn filter_map<'r, B>(self, f: &'r fn(A) -> Option<B>) -> FilterMapIterator<'r, A, B, Self>;
(snip)
fn to_vec(self) -> ~[A];
fn nth(&mut self, n: uint) -> A;
fn first(&mut self) -> A;
fn last(&mut self) -> A;
fn fold<B>(&mut self, start: B, f: &fn(B, A) -> B) -> B;
fn count(&mut self) -> uint;
fn all(&mut self, f: &fn(&A) -> bool) -> bool;
fn any(&mut self, f: &fn(&A) -> bool) -> bool;
}
pub trait AdditiveIterator<A> {
fn sum(&mut self) -> A;
}
pub trait MultiplicativeIterator<A> {
fn product(&mut self) -> A;
}
pub trait OrdIterator<A> {
fn max(&mut self) -> Option<A>;
fn min(&mut self) -> Option<A>;
}
```
2013-05-17 19:58:24 -07:00
bors
d68c0279ea
auto merge of #6249 : crabtw/rust/arm, r=brson
...
It uses the private field of TCB head to store stack limit. I tested on my Raspberry PI. A simple hello world program ran without any problem. However, for a more complex program, it segfaulted as #6231 .
2013-05-17 18:19:27 -07:00
Niko Matsakis
5ca383b777
Distinguish tuple elements by index in mem_categorization. Fixes #5362 .
2013-05-17 21:12:50 -04:00
Brian Anderson
633af4c8ab
Whitespace
2013-05-17 18:11:47 -07:00
Brian Anderson
df9e41278e
core: Wire up stream
to newsched
2013-05-17 17:54:32 -07:00
Brian Anderson
26becc308e
core: Wire up oneshot pipes to newsched
2013-05-17 17:54:27 -07:00
Brian Anderson
f5987b03b8
core::rt: implement oneshot
and stream
.
2013-05-17 17:54:18 -07:00
Brian Anderson
03a8e59615
Merge remote-tracking branch 'brson/io' into incoming
2013-05-17 17:53:50 -07:00
bors
2d28d64542
auto merge of #6569 : Kimundi/rust/ext-bytes, r=erickt
...
Also snug in some cosmetic changes in num.rs that aren't really important enough for an separate pr.
2013-05-17 15:52:25 -07:00
Marvin Löbel
7a2afb7288
Made bytes!() accept a list of string, integer or char literals
2013-05-18 00:26:04 +02:00
Marvin Löbel
916942d006
Some cosmetic changes to num.rs
2013-05-18 00:25:03 +02:00
bors
c34c5051a5
auto merge of #6566 : brson/rust/libuv, r=brson
...
This cherry-picks a fix from upstream. It also includes another libuv patch that we were running but was accidentally removed in a submodule update.
2013-05-17 14:31:25 -07:00
Brian Anderson
b9f77bcd27
Upgrade libuv to fix mac deadlock. #6526
2013-05-17 14:27:25 -07:00
Olivier Saut
3e41639a5e
Add a small section on futures to the tutorial
2013-05-17 23:11:49 +02:00
Olivier Saut
7dc466f91f
Correct the example given for a future, add punctuation where necessary
2013-05-17 23:11:18 +02:00
bors
ff081980e7
auto merge of #6561 : huonw/rust/rustc-u-int-limit-lint, r=nikomatsakis
2013-05-17 09:10:28 -07:00
Huon Wilson
aa179cb0f1
rustc: relax limits on (u)int type limit lint. Fixes #6130 .
2013-05-18 01:49:36 +10:00
gifnksm
3122d8027b
libcore: Add IteratorUtil::all
, any
method
2013-05-18 00:24:43 +09:00
gifnksm
54fbac505e
libcore: Add AdditiveIterator
, MultiplicativeIterator
, OrdIterator
2013-05-18 00:18:09 +09:00
gifnksm
b4cea351ba
libcore: Add IteratorUtil::fold
, count
2013-05-18 00:17:56 +09:00
gifnksm
02945f1cb1
libcore: Add IteratoUtil::nth
, first
, last
method
2013-05-17 23:49:11 +09:00
gifnksm
9ffbe69234
libcore: Add IteratorUtil::filter_map
method
2013-05-17 23:00:48 +09:00
gifnksm
f7e58ebe84
libcore: Add IteratorUtil::to_vec()
method
2013-05-17 22:54:32 +09:00
bors
290a2ebab6
auto merge of #6442 : sstewartgallus/rust/incoming, r=pcwalton
...
Added unit test to prevent similar mistakes from happening again. The
previous method was wrong because it dereferenced a pointer to a void type to
match on the result. No self pointer was needed, and the correct method
signature took the self value by value.
I feel silly that I made this mistake in https://github.com/mozilla/rust/pull/6348
2013-05-17 06:46:32 -07:00
bors
dbbc244f73
auto merge of #6534 : brson/rust/intrinsic-docs, r=bstrie
2013-05-17 05:22:32 -07:00