diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-03-18 16:16:47 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-03-18 16:16:47 -0700 |
| commit | e4af1ca0657d2b3b4fc2e7829cd8f822d983de1b (patch) | |
| tree | 42bd60cf92d138d9490d54b75e49fe103f28360a | |
| parent | 397f33fd35558fd0c390ae29839ecbaf7ce456f9 (diff) | |
| download | rust-e4af1ca0657d2b3b4fc2e7829cd8f822d983de1b.tar.gz rust-e4af1ca0657d2b3b4fc2e7829cd8f822d983de1b.zip | |
core: Add vec::unshift
| -rw-r--r-- | src/libcore/vec.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libcore/vec.rs b/src/libcore/vec.rs index 8b570a14bb9..1fe3ac22ceb 100644 --- a/src/libcore/vec.rs +++ b/src/libcore/vec.rs @@ -323,6 +323,11 @@ fn shift<T: copy>(&v: [const T]) -> T { ret e; } +#[doc = "Prepend an element to a vector"] +fn unshift<T: copy>(&v: [const T], +t: T) { + v = [const t] + v; +} + #[doc = "Remove the last element from a vector and return it"] fn pop<T>(&v: [const T]) -> T unsafe { let ln = len(v); @@ -1734,6 +1739,13 @@ mod tests { let addr_imm = unsafe::to_ptr(x_imm); assert addr == addr_imm; } + + #[test] + fn test_unshift() { + let x = [1, 2, 3]; + unshift(x, 0); + assert x == [0, 1, 2, 3]; + } } // Local Variables: |
