@@ -6,6 +6,8 @@ type vbuf = rustrt.vbuf;
6
6
7
7
type operator2[ T , U , V ] = fn ( & T , & U ) -> V ;
8
8
9
+ type array[ T ] = vec[ mutable? T ] ;
10
+
9
11
native "rust" mod rustrt {
10
12
type vbuf ;
11
13
@@ -43,7 +45,7 @@ fn alloc_mut[T](uint n_elts) -> vec[mutable T] {
43
45
ret rustrt. vec_alloc_mut [ vec[ mutable T ] , T ] ( n_elts) ;
44
46
}
45
47
46
- fn refcount[ T ] ( vec [ mutable? T ] v) -> uint {
48
+ fn refcount[ T ] ( array [ T ] v) -> uint {
47
49
auto r = rustrt. refcount [ T ] ( v) ;
48
50
if ( r == dbg. const_refcount ) {
49
51
ret r;
@@ -116,29 +118,29 @@ fn init_elt_mut[T](&T t, uint n_elts) -> vec[mutable T] {
116
118
ret v;
117
119
}
118
120
119
- fn buf[ T ] ( vec [ mutable? T ] v) -> vbuf {
121
+ fn buf[ T ] ( array [ T ] v) -> vbuf {
120
122
ret rustrt. vec_buf [ T ] ( v, 0 u) ;
121
123
}
122
124
123
- fn len[ T ] ( vec [ mutable? T ] v) -> uint {
125
+ fn len[ T ] ( array [ T ] v) -> uint {
124
126
ret rustrt. vec_len [ T ] ( v) ;
125
127
}
126
128
127
- fn len_set[ T ] ( vec [ mutable? T ] v, uint n) {
129
+ fn len_set[ T ] ( array [ T ] v, uint n) {
128
130
rustrt. vec_len_set [ T ] ( v, n) ;
129
131
}
130
132
131
- fn buf_off[ T ] ( vec [ mutable? T ] v, uint offset) -> vbuf {
133
+ fn buf_off[ T ] ( array [ T ] v, uint offset) -> vbuf {
132
134
check ( offset < len[ T ] ( v) ) ;
133
135
ret rustrt. vec_buf [ T ] ( v, offset) ;
134
136
}
135
137
136
- fn print_debug_info[ T ] ( vec [ mutable? T ] v) {
138
+ fn print_debug_info[ T ] ( array [ T ] v) {
137
139
rustrt. vec_print_debug_info [ T ] ( v) ;
138
140
}
139
141
140
142
// Returns the last element of v.
141
- fn last[ T ] ( vec [ mutable? T ] v) -> option. t [ T ] {
143
+ fn last[ T ] ( array [ T ] v) -> option. t [ T ] {
142
144
auto l = len[ T ] ( v) ;
143
145
if ( l == 0 u) {
144
146
ret none[ T ] ;
@@ -147,7 +149,7 @@ fn last[T](vec[mutable? T] v) -> option.t[T] {
147
149
}
148
150
149
151
// Returns elements from [start..end) from v.
150
- fn slice[ T ] ( vec [ mutable? T ] v, uint start, uint end) -> vec[ T ] {
152
+ fn slice[ T ] ( array [ T ] v, uint start, uint end) -> vec[ T ] {
151
153
check ( start <= end) ;
152
154
check ( end <= len[ T ] ( v) ) ;
153
155
auto result = alloc[ T ] ( end - start) ;
@@ -159,15 +161,15 @@ fn slice[T](vec[mutable? T] v, uint start, uint end) -> vec[T] {
159
161
ret result;
160
162
}
161
163
162
- fn shift[ T ] ( & mutable vec [ mutable? T ] v) -> T {
164
+ fn shift[ T ] ( & mutable array [ T ] v) -> T {
163
165
auto ln = len[ T ] ( v) ;
164
166
check ( ln > 0 u) ;
165
167
auto e = v. ( 0 ) ;
166
168
v = slice[ T ] ( v, 1 u, ln) ;
167
169
ret e;
168
170
}
169
171
170
- fn pop[ T ] ( & mutable vec [ mutable? T ] v) -> T {
172
+ fn pop[ T ] ( & mutable array [ T ] v) -> T {
171
173
auto ln = len[ T ] ( v) ;
172
174
check ( ln > 0 u) ;
173
175
ln -= 1 u;
@@ -176,18 +178,18 @@ fn pop[T](&mutable vec[mutable? T] v) -> T {
176
178
ret e;
177
179
}
178
180
179
- fn push[ T ] ( & mutable vec [ mutable? T ] v, & T t) {
181
+ fn push[ T ] ( & mutable array [ T ] v, & T t) {
180
182
v += vec ( t) ;
181
183
}
182
184
183
- fn unshift[ T ] ( & mutable vec [ mutable? T ] v, & T t) {
185
+ fn unshift[ T ] ( & mutable array [ T ] v, & T t) {
184
186
auto res = alloc[ T ] ( len[ T ] ( v) + 1 u) ;
185
187
res += vec ( t) ;
186
188
res += v;
187
189
v = res;
188
190
}
189
191
190
- fn grow[ T ] ( & mutable vec [ mutable? T ] v, uint n, & T initval) {
192
+ fn grow[ T ] ( & mutable array [ T ] v, uint n, & T initval) {
191
193
let uint i = n;
192
194
while ( i > 0 u) {
193
195
i -= 1 u;
@@ -203,16 +205,15 @@ fn grow_set[T](&mutable vec[mutable T] v, uint index, &T initval, &T val) {
203
205
v. ( index) = val;
204
206
}
205
207
206
- fn map[ T , U ] ( & option. operator [ T , U ] f, & vec [ mutable? T ] v) -> vec[ U ] {
208
+ fn map[ T , U ] ( & option. operator [ T , U ] f, & array [ T ] v) -> vec[ U ] {
207
209
let vec[ U ] u = alloc[ U ] ( len[ T ] ( v) ) ;
208
210
for ( T ve in v) {
209
211
u += vec ( f ( ve) ) ;
210
212
}
211
213
ret u;
212
214
}
213
215
214
- fn map2[ T , U , V ] ( & operator2[ T , U , V ] f, & vec[ mutable? T ] v0, & vec[ mutable? U ] v1)
215
- -> vec[ V ] {
216
+ fn map2[ T , U , V ] ( & operator2[ T , U , V ] f, & array[ T ] v0, & array[ U ] v1) -> vec[ V ] {
216
217
auto v0_len = len[ T ] ( v0) ;
217
218
if ( v0_len != len[ U ] ( v1) ) {
218
219
fail;
@@ -228,7 +229,7 @@ fn map2[T,U,V](&operator2[T,U,V] f, &vec[mutable? T] v0, &vec[mutable? U] v1)
228
229
ret u;
229
230
}
230
231
231
- fn find[ T ] ( fn ( & T ) -> bool f, & vec [ mutable? T ] v) -> option. t [ T ] {
232
+ fn find[ T ] ( fn ( & T ) -> bool f, & array [ T ] v) -> option. t [ T ] {
232
233
for ( T elt in v) {
233
234
if ( f ( elt) ) {
234
235
ret some[ T ] ( elt) ;
0 commit comments