@@ -16,6 +16,13 @@ pub fn ImmutableVec::empty[T]() -> ImmutableVec[T] {
16
16
{ tree : Tree ::empty (), size : 0 , shift : 0 }
17
17
}
18
18
19
+ test "is_empty" {
20
+ let v = ImmutableVec ::[1 , 2 , 3 , 4 , 5 ]
21
+ let ve : ImmutableVec [Int ] = ImmutableVec ::empty ()
22
+ inspect (is_empty (v ), content = "false" )?
23
+ inspect (is_empty (ve ), content = "true" )?
24
+ }
25
+
19
26
pub fn to_string [T : Show ](self : ImmutableVec [T ]) -> String {
20
27
let mut s = "ImmutableVec::[" .to_string ()
21
28
for i = 0 ; i < self .size; i = i + 1 {
@@ -39,16 +46,18 @@ pub fn is_empty[T](v : ImmutableVec[T]) -> Bool {
39
46
v .size == 0
40
47
}
41
48
42
- pub fn to_array [T : Show ](self : ImmutableVec [T ]) -> String {
43
- let mut s = "ImmutableVec::[" . to_string ()
49
+ pub fn to_array [T ](self : ImmutableVec [T ]) -> Array [ T ] {
50
+ let arr = Array :: new ()
44
51
for i = 0 ; i < self .size; i = i + 1 {
45
- s = s + self [i ].to_string ()
46
- if i < self .size - 1 {
47
- s = s + ", "
48
- }
52
+ arr .push (self [i ])
49
53
}
50
- s = s + "]"
51
- s
54
+ arr
55
+ }
56
+
57
+ test "to_array" {
58
+ let v = ImmutableVec ::[1 , 2 , 3 , 4 ]
59
+ inspect (v .to_array ().to_string (), content = "[1, 2, 3, 4]" )?
60
+ inspect (v .push (5 ).to_array ().to_string (), content = "[1, 2, 3, 4, 5]" )?
52
61
}
53
62
54
63
pub fn as_iter [T ](self : ImmutableVec [T ]) -> @iter .Iter [T ] {
@@ -68,29 +77,13 @@ pub fn as_iter[T](self : ImmutableVec[T]) -> @iter.Iter[T] {
68
77
test "as_iter" {
69
78
let buf = Buffer ::make (20 )
70
79
let v = ImmutableVec ::[1 , 2 , 3 ]
71
- v .as_iter ().iter (
72
- fn (e ) {
73
- buf .write_string ("[\(e)]" )
74
- },
75
- )
80
+ v .as_iter ().iter (fn (e ) { buf .write_string ("[\(e)]" ) })
76
81
inspect (buf , content = "[1][2][3]" )?
77
82
buf .reset ()
78
- v .as_iter ().take (2 ).iter (
79
- fn (e ) {
80
- buf .write_string ("[\(e)]" )
81
- },
82
- )
83
+ v .as_iter ().take (2 ).iter (fn (e ) { buf .write_string ("[\(e)]" ) })
83
84
inspect (buf , content = "[1][2]" )?
84
85
}
85
86
86
-
87
- test "is_empty" {
88
- let v = ImmutableVec ::[1 , 2 , 3 , 4 , 5 ]
89
- let ve : ImmutableVec [Int ] = ImmutableVec ::empty ()
90
- inspect (is_empty (v ), content = "false" )?
91
- inspect (is_empty (ve ), content = "true" )?
92
- }
93
-
94
87
pub fn length [T ](v : ImmutableVec [T ]) -> Int {
95
88
v .size
96
89
}
0 commit comments