diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2011-06-03 16:14:29 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2011-06-03 16:15:14 -0700 |
| commit | cb4c969ba6ec61007ac1bbdaeed7eb5f21859949 (patch) | |
| tree | 5650e438fd25d75c682883156869f848403bbb81 /src/lib/vec.rs | |
| parent | 088ab03fdbdd2fad29b678f5eeaadde4e15cb205 (diff) | |
| download | rust-cb4c969ba6ec61007ac1bbdaeed7eb5f21859949.tar.gz rust-cb4c969ba6ec61007ac1bbdaeed7eb5f21859949.zip | |
rustc: Add a "smallintmap" implementation
Diffstat (limited to 'src/lib/vec.rs')
| -rw-r--r-- | src/lib/vec.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/vec.rs b/src/lib/vec.rs index 969fca9a17e..8259e494e25 100644 --- a/src/lib/vec.rs +++ b/src/lib/vec.rs @@ -163,6 +163,19 @@ fn slice[T](array[T] v, uint start, uint end) -> vec[T] { ret result; } +// FIXME: Should go away eventually. +fn slice_mut[T](array[T] v, uint start, uint end) -> vec[mutable T] { + assert (start <= end); + assert (end <= len[T](v)); + auto result = alloc_mut[T](end - start); + let uint i = start; + while (i < end) { + result += [mutable v.(i)]; + i += 1u; + } + ret result; +} + fn shift[T](&mutable array[T] v) -> T { auto ln = len[T](v); assert (ln > 0u); |
