Skip to content

Commit 577da04

Browse files
committed
---
yaml --- r: 6045 b: refs/heads/master c: 2e0593d h: refs/heads/master i: 6043: a2e233d v: v3
1 parent 855ef6b commit 577da04

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: da064ef884994df1889d6a083349fb0bf6954400
2+
refs/heads/master: 2e0593d9999a50c74ea2962e53b8f5686037fd36

trunk/src/lib/vec.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,19 @@ fn filter<T>(f: block(T) -> bool, v: [mutable? T]) -> [T] {
446446
ret result;
447447
}
448448

449+
/*
450+
Function: concat
451+
452+
Concatenate a vector of vectors. Flattens a vector of vectors of T into
453+
a single vector of T.
454+
*/
455+
fn concat<T>(v: [mutable? [mutable? T]]) -> [T] {
456+
// FIXME: So much copying
457+
let new: [T] = [];
458+
for inner: [T] in v { new += inner; }
459+
ret new;
460+
}
461+
449462
/*
450463
Function: foldl
451464

trunk/src/test/stdtest/vec.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,11 @@ fn init_empty() {
469469
#[ignore]
470470
fn init_empty() { }
471471

472+
#[test]
473+
fn concat() {
474+
assert vec::concat([[1], [2,3]]) == [1, 2, 3];
475+
}
476+
472477
// Local Variables:
473478
// mode: rust;
474479
// fill-column: 78;

0 commit comments

Comments
 (0)