Skip to content

Commit 0aec726

Browse files
committed
De-~[] array
1 parent 2a822eb commit 0aec726

File tree

3 files changed

+34
-33
lines changed

3 files changed

+34
-33
lines changed

src/test.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -519,13 +519,13 @@ fn test_tstzrange_params() {
519519
520520
macro_rules! test_array_params(
521521
($name:expr, $v1:expr, $s1:expr, $v2:expr, $s2:expr, $v3:expr, $s3:expr) => ({
522-
let tests = [(Some(ArrayBase::from_vec(~[Some($v1), Some($v2), None], 1)),
522+
let tests = [(Some(ArrayBase::from_vec(vec!(Some($v1), Some($v2), None), 1)),
523523
"'{" + $s1 + "," + $s2 + ",NULL}'"),
524524
(None, ~"NULL")];
525525
test_type($name + "[]", tests);
526-
let mut a = ArrayBase::from_vec(~[Some($v1), Some($v2)], 0);
526+
let mut a = ArrayBase::from_vec(vec!(Some($v1), Some($v2)), 0);
527527
a.wrap(-1);
528-
a.push_move(ArrayBase::from_vec(~[None, Some($v3)], 0));
528+
a.push_move(ArrayBase::from_vec(vec!(None, Some($v3)), 0));
529529
let tests = [(Some(a), "'[-1:0][0:1]={{" + $s1 + "," + $s2 + "},{NULL," + $s3 + "}}'")];
530530
test_type($name + "[][]", tests);
531531
})

src/types/array.rs

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
33
use std::cast;
44
use std::vec;
5+
use std::vec_ng::Vec;
56

67
/// Information about a dimension of an array
78
#[deriving(Eq, Clone, Show)]
@@ -71,8 +72,8 @@ trait InternalArray<T> : Array<T> {
7172
/// A multi-dimensional array
7273
#[deriving(Eq, Clone)]
7374
pub struct ArrayBase<T> {
74-
priv info: ~[DimensionInfo],
75-
priv data: ~[T],
75+
priv info: Vec<DimensionInfo>,
76+
priv data: Vec<T>,
7677
}
7778

7879
impl<T> ArrayBase<T> {
@@ -85,7 +86,7 @@ impl<T> ArrayBase<T> {
8586
///
8687
/// Fails if there are 0 dimensions or the number of elements provided does
8788
/// not match the number of elements specified.
88-
pub fn from_raw(data: ~[T], info: ~[DimensionInfo])
89+
pub fn from_raw(data: Vec<T>, info: Vec<DimensionInfo>)
8990
-> ArrayBase<T> {
9091
assert!(!info.is_empty(), "Cannot create a 0x0 array");
9192
assert!(data.len() == info.iter().fold(1, |acc, i| acc * i.len),
@@ -97,12 +98,12 @@ impl<T> ArrayBase<T> {
9798
}
9899

99100
/// Creates a new one-dimensional array from a vector.
100-
pub fn from_vec(data: ~[T], lower_bound: int) -> ArrayBase<T> {
101+
pub fn from_vec(data: Vec<T>, lower_bound: int) -> ArrayBase<T> {
101102
ArrayBase {
102-
info: ~[DimensionInfo {
103+
info: vec!(DimensionInfo {
103104
len: data.len(),
104105
lower_bound: lower_bound
105-
}],
106+
}),
106107
data: data
107108
}
108109
}
@@ -138,7 +139,7 @@ impl<T> ArrayBase<T> {
138139
for (info1, info2) in self.info.iter().skip(1).zip(other.info.iter()) {
139140
assert!(info1 == info2, "Cannot join differently shaped arrays");
140141
}
141-
self.info[0].len += 1;
142+
self.info.get_mut(0).len += 1;
142143
self.data.push_all_move(other.data);
143144
}
144145

@@ -174,7 +175,7 @@ impl<T> MutableArray<T> for ArrayBase<T> {}
174175

175176
impl<T> InternalArray<T> for ArrayBase<T> {
176177
fn raw_get<'a>(&'a self, idx: uint, _size: uint) -> &'a T {
177-
&self.data[idx]
178+
self.data.get(idx)
178179
}
179180
}
180181

@@ -252,7 +253,7 @@ mod tests {
252253

253254
#[test]
254255
fn test_from_vec() {
255-
let a = ArrayBase::from_vec(~[0, 1, 2], -1);
256+
let a = ArrayBase::from_vec(vec!(0, 1, 2), -1);
256257
assert!([DimensionInfo { len: 3, lower_bound: -1 }] ==
257258
a.dimension_info());
258259
assert_eq!(&0, a.get(-1));
@@ -263,30 +264,30 @@ mod tests {
263264
#[test]
264265
#[should_fail]
265266
fn test_get_2d_fail() {
266-
let mut a = ArrayBase::from_vec(~[0, 1, 2], -1);
267+
let mut a = ArrayBase::from_vec(vec!(0, 1, 2), -1);
267268
a.wrap(1);
268269
a.get(1);
269270
}
270271

271272
#[test]
272273
#[should_fail]
273274
fn test_2d_slice_range_fail_low() {
274-
let mut a = ArrayBase::from_vec(~[0, 1, 2], -1);
275+
let mut a = ArrayBase::from_vec(vec!(0, 1, 2), -1);
275276
a.wrap(1);
276277
a.slice(0);
277278
}
278279

279280
#[test]
280281
#[should_fail]
281282
fn test_2d_slice_range_fail_high() {
282-
let mut a = ArrayBase::from_vec(~[0, 1, 2], -1);
283+
let mut a = ArrayBase::from_vec(vec!(0, 1, 2), -1);
283284
a.wrap(1);
284285
a.slice(2);
285286
}
286287

287288
#[test]
288289
fn test_2d_slice_get() {
289-
let mut a = ArrayBase::from_vec(~[0, 1, 2], -1);
290+
let mut a = ArrayBase::from_vec(vec!(0, 1, 2), -1);
290291
a.wrap(1);
291292
let s = a.slice(1);
292293
assert_eq!(&0, s.get(-1));
@@ -297,33 +298,33 @@ mod tests {
297298
#[test]
298299
#[should_fail]
299300
fn test_push_move_wrong_lower_bound() {
300-
let mut a = ArrayBase::from_vec(~[1], -1);
301-
a.push_move(ArrayBase::from_vec(~[2], 0));
301+
let mut a = ArrayBase::from_vec(vec!(1), -1);
302+
a.push_move(ArrayBase::from_vec(vec!(2), 0));
302303
}
303304

304305
#[test]
305306
#[should_fail]
306307
fn test_push_move_wrong_dims() {
307-
let mut a = ArrayBase::from_vec(~[1], -1);
308+
let mut a = ArrayBase::from_vec(vec!(1), -1);
308309
a.wrap(1);
309-
a.push_move(ArrayBase::from_vec(~[1, 2], -1));
310+
a.push_move(ArrayBase::from_vec(vec!(1, 2), -1));
310311
}
311312

312313
#[test]
313314
#[should_fail]
314315
fn test_push_move_wrong_dim_count() {
315-
let mut a = ArrayBase::from_vec(~[1], -1);
316+
let mut a = ArrayBase::from_vec(vec!(1), -1);
316317
a.wrap(1);
317-
let mut b = ArrayBase::from_vec(~[2], -1);
318+
let mut b = ArrayBase::from_vec(vec!(2), -1);
318319
b.wrap(1);
319320
a.push_move(b);
320321
}
321322

322323
#[test]
323324
fn test_push_move_ok() {
324-
let mut a = ArrayBase::from_vec(~[1, 2], 0);
325+
let mut a = ArrayBase::from_vec(vec!(1, 2), 0);
325326
a.wrap(0);
326-
a.push_move(ArrayBase::from_vec(~[3, 4], 0));
327+
a.push_move(ArrayBase::from_vec(vec!(3, 4), 0));
327328
let s = a.slice(0);
328329
assert_eq!(&1, s.get(0));
329330
assert_eq!(&2, s.get(1));
@@ -334,13 +335,13 @@ mod tests {
334335

335336
#[test]
336337
fn test_3d() {
337-
let mut a = ArrayBase::from_vec(~[0, 1], 0);
338+
let mut a = ArrayBase::from_vec(vec!(0, 1), 0);
338339
a.wrap(0);
339-
a.push_move(ArrayBase::from_vec(~[2, 3], 0));
340+
a.push_move(ArrayBase::from_vec(vec!(2, 3), 0));
340341
a.wrap(0);
341-
let mut b = ArrayBase::from_vec(~[4, 5], 0);
342+
let mut b = ArrayBase::from_vec(vec!(4, 5), 0);
342343
b.wrap(0);
343-
b.push_move(ArrayBase::from_vec(~[6, 7], 0));
344+
b.push_move(ArrayBase::from_vec(vec!(6, 7), 0));
344345
a.push_move(b);
345346
let s1 = a.slice(0);
346347
let s2 = s1.slice(0);
@@ -360,7 +361,7 @@ mod tests {
360361

361362
#[test]
362363
fn test_mut() {
363-
let mut a = ArrayBase::from_vec(~[1, 2], 0);
364+
let mut a = ArrayBase::from_vec(vec!(1, 2), 0);
364365
a.wrap(0);
365366
{
366367
let mut s = a.slice_mut(0);
@@ -373,14 +374,14 @@ mod tests {
373374
#[test]
374375
#[should_fail]
375376
fn test_base_overslice() {
376-
let a = ArrayBase::from_vec(~[1], 0);
377+
let a = ArrayBase::from_vec(vec!(1), 0);
377378
a.slice(0);
378379
}
379380

380381
#[test]
381382
#[should_fail]
382383
fn test_slice_overslice() {
383-
let mut a = ArrayBase::from_vec(~[1], 0);
384+
let mut a = ArrayBase::from_vec(vec!(1), 0);
384385
a.wrap(0);
385386
let s = a.slice(0);
386387
s.slice(0);

src/types/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ macro_rules! from_array_impl(
419419
let _has_null = or_fail!(rdr.read_be_i32()) == 1;
420420
let _element_type: Oid = or_fail!(rdr.read_be_u32());
421421

422-
let mut dim_info = vec::with_capacity(ndim);
422+
let mut dim_info = Vec::with_capacity(ndim);
423423
for _ in range(0, ndim) {
424424
dim_info.push(DimensionInfo {
425425
len: or_fail!(rdr.read_be_i32()) as uint,
@@ -428,7 +428,7 @@ macro_rules! from_array_impl(
428428
}
429429
let nele = dim_info.iter().fold(1, |acc, info| acc * info.len);
430430

431-
let mut elements = vec::with_capacity(nele);
431+
let mut elements = Vec::with_capacity(nele);
432432
for _ in range(0, nele) {
433433
let len = or_fail!(rdr.read_be_i32());
434434
if len < 0 {

0 commit comments

Comments
 (0)