@@ -50,9 +50,11 @@ fn test_mem_mut_writer() {
50
50
assert_eq ! ( & writer. get_ref( ) [ ..] , b) ;
51
51
}
52
52
53
- #[ test]
54
- fn test_box_slice_writer ( ) {
55
- let mut writer = Cursor :: new ( vec ! [ 0u8 ; 9 ] . into_boxed_slice ( ) ) ;
53
+ fn test_slice_writer < T > ( writer : & mut Cursor < T > )
54
+ where
55
+ T : AsRef < [ u8 ] > ,
56
+ Cursor < T > : Write ,
57
+ {
56
58
assert_eq ! ( writer. position( ) , 0 ) ;
57
59
assert_eq ! ( writer. write( & [ 0 ] ) . unwrap( ) , 1 ) ;
58
60
assert_eq ! ( writer. position( ) , 1 ) ;
@@ -65,12 +67,14 @@ fn test_box_slice_writer() {
65
67
assert_eq ! ( writer. write( & [ 8 , 9 ] ) . unwrap( ) , 1 ) ;
66
68
assert_eq ! ( writer. write( & [ 10 ] ) . unwrap( ) , 0 ) ;
67
69
let b: & [ _ ] = & [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] ;
68
- assert_eq ! ( & * * writer. get_ref( ) , b) ;
70
+ assert_eq ! ( writer. get_ref( ) . as_ref ( ) , b) ;
69
71
}
70
72
71
- #[ test]
72
- fn test_box_slice_writer_vectored ( ) {
73
- let mut writer = Cursor :: new ( vec ! [ 0u8 ; 9 ] . into_boxed_slice ( ) ) ;
73
+ fn test_slice_writer_vectored < T > ( writer : & mut Cursor < T > )
74
+ where
75
+ T : AsRef < [ u8 ] > ,
76
+ Cursor < T > : Write ,
77
+ {
74
78
assert_eq ! ( writer. position( ) , 0 ) ;
75
79
assert_eq ! ( writer. write_vectored( & [ IoSlice :: new( & [ 0 ] ) ] ) . unwrap( ) , 1 ) ;
76
80
assert_eq ! ( writer. position( ) , 1 ) ;
@@ -85,53 +89,45 @@ fn test_box_slice_writer_vectored() {
85
89
assert_eq ! ( writer. write_vectored( & [ IoSlice :: new( & [ 8 , 9 ] ) ] ) . unwrap( ) , 1 ) ;
86
90
assert_eq ! ( writer. write_vectored( & [ IoSlice :: new( & [ 10 ] ) ] ) . unwrap( ) , 0 ) ;
87
91
let b: & [ _ ] = & [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] ;
88
- assert_eq ! ( & * * writer. get_ref( ) , b) ;
92
+ assert_eq ! ( writer. get_ref( ) . as_ref( ) , b) ;
93
+ }
94
+
95
+ #[ test]
96
+ fn test_box_slice_writer ( ) {
97
+ let mut writer = Cursor :: new ( vec ! [ 0u8 ; 9 ] . into_boxed_slice ( ) ) ;
98
+ test_slice_writer ( & mut writer) ;
99
+ }
100
+
101
+ #[ test]
102
+ fn test_box_slice_writer_vectored ( ) {
103
+ let mut writer = Cursor :: new ( vec ! [ 0u8 ; 9 ] . into_boxed_slice ( ) ) ;
104
+ test_slice_writer_vectored ( & mut writer) ;
105
+ }
106
+
107
+ #[ test]
108
+ fn test_array_writer ( ) {
109
+ let mut writer = Cursor :: new ( [ 0u8 ; 9 ] ) ;
110
+ test_slice_writer ( & mut writer) ;
111
+ }
112
+
113
+ #[ test]
114
+ fn test_array_writer_vectored ( ) {
115
+ let mut writer = Cursor :: new ( [ 0u8 ; 9 ] ) ;
116
+ test_slice_writer_vectored ( & mut writer) ;
89
117
}
90
118
91
119
#[ test]
92
120
fn test_buf_writer ( ) {
93
121
let mut buf = [ 0 as u8 ; 9 ] ;
94
- {
95
- let mut writer = Cursor :: new ( & mut buf[ ..] ) ;
96
- assert_eq ! ( writer. position( ) , 0 ) ;
97
- assert_eq ! ( writer. write( & [ 0 ] ) . unwrap( ) , 1 ) ;
98
- assert_eq ! ( writer. position( ) , 1 ) ;
99
- assert_eq ! ( writer. write( & [ 1 , 2 , 3 ] ) . unwrap( ) , 3 ) ;
100
- assert_eq ! ( writer. write( & [ 4 , 5 , 6 , 7 ] ) . unwrap( ) , 4 ) ;
101
- assert_eq ! ( writer. position( ) , 8 ) ;
102
- assert_eq ! ( writer. write( & [ ] ) . unwrap( ) , 0 ) ;
103
- assert_eq ! ( writer. position( ) , 8 ) ;
104
-
105
- assert_eq ! ( writer. write( & [ 8 , 9 ] ) . unwrap( ) , 1 ) ;
106
- assert_eq ! ( writer. write( & [ 10 ] ) . unwrap( ) , 0 ) ;
107
- }
108
- let b: & [ _ ] = & [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] ;
109
- assert_eq ! ( buf, b) ;
122
+ let mut writer = Cursor :: new ( & mut buf[ ..] ) ;
123
+ test_slice_writer ( & mut writer) ;
110
124
}
111
125
112
126
#[ test]
113
127
fn test_buf_writer_vectored ( ) {
114
128
let mut buf = [ 0 as u8 ; 9 ] ;
115
- {
116
- let mut writer = Cursor :: new ( & mut buf[ ..] ) ;
117
- assert_eq ! ( writer. position( ) , 0 ) ;
118
- assert_eq ! ( writer. write_vectored( & [ IoSlice :: new( & [ 0 ] ) ] ) . unwrap( ) , 1 ) ;
119
- assert_eq ! ( writer. position( ) , 1 ) ;
120
- assert_eq ! (
121
- writer
122
- . write_vectored( & [ IoSlice :: new( & [ 1 , 2 , 3 ] ) , IoSlice :: new( & [ 4 , 5 , 6 , 7 ] ) ] , )
123
- . unwrap( ) ,
124
- 7 ,
125
- ) ;
126
- assert_eq ! ( writer. position( ) , 8 ) ;
127
- assert_eq ! ( writer. write_vectored( & [ ] ) . unwrap( ) , 0 ) ;
128
- assert_eq ! ( writer. position( ) , 8 ) ;
129
-
130
- assert_eq ! ( writer. write_vectored( & [ IoSlice :: new( & [ 8 , 9 ] ) ] ) . unwrap( ) , 1 ) ;
131
- assert_eq ! ( writer. write_vectored( & [ IoSlice :: new( & [ 10 ] ) ] ) . unwrap( ) , 0 ) ;
132
- }
133
- let b: & [ _ ] = & [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] ;
134
- assert_eq ! ( buf, b) ;
129
+ let mut writer = Cursor :: new ( & mut buf[ ..] ) ;
130
+ test_slice_writer_vectored ( & mut writer) ;
135
131
}
136
132
137
133
#[ test]
0 commit comments