@@ -50,9 +50,11 @@ fn test_mem_mut_writer() {
5050 assert_eq ! ( & writer. get_ref( ) [ ..] , b) ;
5151}
5252
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+ {
5658 assert_eq ! ( writer. position( ) , 0 ) ;
5759 assert_eq ! ( writer. write( & [ 0 ] ) . unwrap( ) , 1 ) ;
5860 assert_eq ! ( writer. position( ) , 1 ) ;
@@ -65,12 +67,14 @@ fn test_box_slice_writer() {
6567 assert_eq ! ( writer. write( & [ 8 , 9 ] ) . unwrap( ) , 1 ) ;
6668 assert_eq ! ( writer. write( & [ 10 ] ) . unwrap( ) , 0 ) ;
6769 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) ;
6971}
7072
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+ {
7478 assert_eq ! ( writer. position( ) , 0 ) ;
7579 assert_eq ! ( writer. write_vectored( & [ IoSlice :: new( & [ 0 ] ) ] ) . unwrap( ) , 1 ) ;
7680 assert_eq ! ( writer. position( ) , 1 ) ;
@@ -85,53 +89,45 @@ fn test_box_slice_writer_vectored() {
8589 assert_eq ! ( writer. write_vectored( & [ IoSlice :: new( & [ 8 , 9 ] ) ] ) . unwrap( ) , 1 ) ;
8690 assert_eq ! ( writer. write_vectored( & [ IoSlice :: new( & [ 10 ] ) ] ) . unwrap( ) , 0 ) ;
8791 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) ;
89117}
90118
91119#[ test]
92120fn test_buf_writer ( ) {
93121 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) ;
110124}
111125
112126#[ test]
113127fn test_buf_writer_vectored ( ) {
114128 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) ;
135131}
136132
137133#[ test]
0 commit comments