@@ -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