@@ -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,33 @@ 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) ;
89
105
}
90
106
91
107
#[ test]
92
108
fn test_buf_writer ( ) {
93
109
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) ;
110
+ let mut writer = Cursor :: new ( & mut buf[ ..] ) ;
111
+ test_slice_writer ( & mut writer) ;
110
112
}
111
113
112
114
#[ test]
113
115
fn test_buf_writer_vectored ( ) {
114
116
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) ;
117
+ let mut writer = Cursor :: new ( & mut buf[ ..] ) ;
118
+ test_slice_writer_vectored ( & mut writer) ;
135
119
}
136
120
137
121
#[ test]
0 commit comments