Skip to content

Commit eb93b04

Browse files
committed
---
yaml --- r: 2654 b: refs/heads/master c: 6b95584 h: refs/heads/master v: v3
1 parent 4c33d8a commit eb93b04

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-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: a4dd57705c7b203ad0efed4ddcc0e3959e65d627
2+
refs/heads/master: 6b95584df5c878f716743eb9c60ad5df77af8b18

trunk/src/lib/vec.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,20 @@ fn grow_set[T](&vec[mutable T] v, uint index, &T initval, &T val) {
206206
v.(index) = val;
207207
}
208208

209+
fn grow_init_fn[T](&array[T] v, uint n, fn()->T init_fn) {
210+
let uint i = n;
211+
while (i > 0u) {
212+
i -= 1u;
213+
v += [init_fn()];
214+
}
215+
}
216+
217+
fn grow_init_fn_set[T](&array[T] v, uint index, fn()->T init_fn, &T val) {
218+
auto length = vec::len(v);
219+
if (index >= length) { grow_init_fn(v, index - length + 1u, init_fn); }
220+
v.(index) = val;
221+
}
222+
209223
fn map[T, U](&option::operator[T,U] f, &array[T] v) -> vec[U] {
210224
let vec[U] u = alloc[U](len[T](v));
211225
for (T ve in v) {

0 commit comments

Comments
 (0)