]>
git.proxmox.com Git - rustc.git/blob - src/libsyntax/util/small_vector.rs
1 // Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
11 use rustc_data_structures
::small_vec
::SmallVec
;
13 pub type SmallVector
<T
> = SmallVec
<[T
; 1]>;
21 let v
: SmallVector
<isize> = SmallVector
::new();
22 assert_eq
!(0, v
.len());
24 assert_eq
!(1, SmallVector
::one(1).len());
25 assert_eq
!(5, SmallVector
::many(vec
![1, 2, 3, 4, 5]).len());
30 let mut v
= SmallVector
::new();
32 assert_eq
!(1, v
.len());
35 assert_eq
!(2, v
.len());
38 assert_eq
!(3, v
.len());
44 let v
: SmallVector
<isize> = (vec
![1, 2, 3]).into_iter().collect();
45 assert_eq
!(3, v
.len());
53 let v
= SmallVector
::new();
54 let v
: Vec
<isize> = v
.into_iter().collect();
55 assert_eq
!(v
, Vec
::new());
57 let v
= SmallVector
::one(1);
58 assert_eq
!(v
.into_iter().collect
::<Vec
<_
>>(), [1]);
60 let v
= SmallVector
::many(vec
![1, 2, 3]);
61 assert_eq
!(v
.into_iter().collect
::<Vec
<_
>>(), [1, 2, 3]);
66 fn test_expect_one_zero() {
67 let _
: isize = SmallVector
::new().expect_one("");
72 fn test_expect_one_many() {
73 SmallVector
::many(vec
![1, 2]).expect_one("");
77 fn test_expect_one_one() {
78 assert_eq
!(1, SmallVector
::one(1).expect_one(""));
79 assert_eq
!(1, SmallVector
::many(vec
![1]).expect_one(""));