Skip to content

Commit ab579e1

Browse files
committed
stdlib: Port std::either over to interior vectors
1 parent b062bbd commit ab579e1

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

src/lib/either.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,35 +16,35 @@ fn either[T, U,
1616
}
1717
}
1818

19-
fn lefts[T, U](&vec[t[T, U]] eithers) -> vec[T] {
20-
let vec[T] result = [];
19+
fn lefts[T, U](&(t[T, U])[] eithers) -> T[] {
20+
let T[] result = ~[];
2121
for (t[T, U] elt in eithers) {
2222
alt (elt) {
23-
case (left(?l)) { result += [l] }
23+
case (left(?l)) { result += ~[l] }
2424
case (_) {/* fallthrough */ }
2525
}
2626
}
2727
ret result;
2828
}
2929

30-
fn rights[T, U](&vec[t[T, U]] eithers) -> vec[U] {
31-
let vec[U] result = [];
30+
fn rights[T, U](&(t[T, U])[] eithers) -> U[] {
31+
let U[] result = ~[];
3232
for (t[T, U] elt in eithers) {
3333
alt (elt) {
34-
case (right(?r)) { result += [r] }
34+
case (right(?r)) { result += ~[r] }
3535
case (_) {/* fallthrough */ }
3636
}
3737
}
3838
ret result;
3939
}
4040

41-
fn partition[T, U](&vec[t[T, U]] eithers) -> tup(vec[T], vec[U]) {
42-
let vec[T] lefts = [];
43-
let vec[U] rights = [];
41+
fn partition[T, U](&(t[T, U])[] eithers) -> tup(T[], U[]) {
42+
let T[] lefts = ~[];
43+
let U[] rights = ~[];
4444
for (t[T, U] elt in eithers) {
4545
alt (elt) {
46-
case (left(?l)) { lefts += [l] }
47-
case (right(?r)) { rights += [r] }
46+
case (left(?l)) { lefts += ~[l] }
47+
case (right(?r)) { rights += ~[r] }
4848
}
4949
}
5050
ret tup(lefts, rights);

0 commit comments

Comments
 (0)