@@ -982,6 +982,12 @@ pub struct FILERes {
982
982
f : * libc:: FILE ,
983
983
}
984
984
985
+ impl FILERes {
986
+ pub fn new ( f : * libc:: FILE ) -> FILERes {
987
+ FILERes { f : f }
988
+ }
989
+ }
990
+
985
991
impl Drop for FILERes {
986
992
fn finalize ( & self ) {
987
993
unsafe {
@@ -990,15 +996,9 @@ impl Drop for FILERes {
990
996
}
991
997
}
992
998
993
- pub fn FILERes ( f : * libc:: FILE ) -> FILERes {
994
- FILERes {
995
- f : f
996
- }
997
- }
998
-
999
999
pub fn FILE_reader ( f : * libc:: FILE , cleanup : bool ) -> @Reader {
1000
1000
if cleanup {
1001
- @Wrapper { base : f, cleanup : FILERes ( f) } as @Reader
1001
+ @Wrapper { base : f, cleanup : FILERes :: new ( f) } as @Reader
1002
1002
} else {
1003
1003
@f as @Reader
1004
1004
}
@@ -1183,7 +1183,7 @@ impl Writer for *libc::FILE {
1183
1183
1184
1184
pub fn FILE_writer ( f : * libc:: FILE , cleanup : bool ) -> @Writer {
1185
1185
if cleanup {
1186
- @Wrapper { base : f, cleanup : FILERes ( f) } as @Writer
1186
+ @Wrapper { base : f, cleanup : FILERes :: new ( f) } as @Writer
1187
1187
} else {
1188
1188
@f as @Writer
1189
1189
}
@@ -1227,6 +1227,12 @@ pub struct FdRes {
1227
1227
fd : fd_t ,
1228
1228
}
1229
1229
1230
+ impl FdRes {
1231
+ pub fn new ( fd : fd_t ) -> FdRes {
1232
+ FdRes { fd : fd }
1233
+ }
1234
+ }
1235
+
1230
1236
impl Drop for FdRes {
1231
1237
fn finalize ( & self ) {
1232
1238
unsafe {
@@ -1235,15 +1241,9 @@ impl Drop for FdRes {
1235
1241
}
1236
1242
}
1237
1243
1238
- pub fn FdRes ( fd : fd_t ) -> FdRes {
1239
- FdRes {
1240
- fd : fd
1241
- }
1242
- }
1243
-
1244
1244
pub fn fd_writer ( fd : fd_t , cleanup : bool ) -> @Writer {
1245
1245
if cleanup {
1246
- @Wrapper { base : fd, cleanup : FdRes ( fd) } as @Writer
1246
+ @Wrapper { base : fd, cleanup : FdRes :: new ( fd) } as @Writer
1247
1247
} else {
1248
1248
@fd as @Writer
1249
1249
}
@@ -1634,6 +1634,15 @@ pub struct BytesWriter {
1634
1634
pos : @mut uint ,
1635
1635
}
1636
1636
1637
+ impl BytesWriter {
1638
+ pub fn new ( ) -> BytesWriter {
1639
+ BytesWriter {
1640
+ bytes : @mut ~[ ] ,
1641
+ pos : @mut 0
1642
+ }
1643
+ }
1644
+ }
1645
+
1637
1646
impl Writer for BytesWriter {
1638
1647
fn write ( & self , v : & [ u8 ] ) {
1639
1648
let v_len = v. len ( ) ;
@@ -1673,15 +1682,8 @@ impl Writer for BytesWriter {
1673
1682
}
1674
1683
}
1675
1684
1676
- pub fn BytesWriter ( ) -> BytesWriter {
1677
- BytesWriter {
1678
- bytes : @mut ~[ ] ,
1679
- pos : @mut 0
1680
- }
1681
- }
1682
-
1683
1685
pub fn with_bytes_writer ( f : & fn ( @Writer ) ) -> ~[ u8 ] {
1684
- let wr = @BytesWriter ( ) ;
1686
+ let wr = @BytesWriter :: new ( ) ;
1685
1687
f ( wr as @Writer ) ;
1686
1688
let @BytesWriter { bytes, _ } = wr;
1687
1689
copy * bytes
@@ -1762,6 +1764,12 @@ pub mod fsync {
1762
1764
arg : Arg < t > ,
1763
1765
}
1764
1766
1767
+ impl < t : Copy > Res < t > {
1768
+ pub fn new ( arg : Arg < t > ) -> Res < t > {
1769
+ Res { arg : arg }
1770
+ }
1771
+ }
1772
+
1765
1773
#[ unsafe_destructor]
1766
1774
impl < T : Copy > Drop for Res < T > {
1767
1775
fn finalize ( & self ) {
@@ -1776,12 +1784,6 @@ pub mod fsync {
1776
1784
}
1777
1785
}
1778
1786
1779
- pub fn Res < t : Copy > ( arg : Arg < t > ) -> Res < t > {
1780
- Res {
1781
- arg : arg
1782
- }
1783
- }
1784
-
1785
1787
pub struct Arg < t > {
1786
1788
val : t ,
1787
1789
opt_level : Option < Level > ,
@@ -1793,7 +1795,7 @@ pub mod fsync {
1793
1795
// outer res
1794
1796
pub fn FILE_res_sync ( file : & FILERes , opt_level : Option < Level > ,
1795
1797
blk : & fn ( v : Res < * libc:: FILE > ) ) {
1796
- blk ( Res ( Arg {
1798
+ blk ( Res :: new ( Arg {
1797
1799
val : file. f , opt_level : opt_level,
1798
1800
fsync_fn : |file, l| {
1799
1801
unsafe {
@@ -1806,7 +1808,7 @@ pub mod fsync {
1806
1808
// fsync fd after executing blk
1807
1809
pub fn fd_res_sync ( fd : & FdRes , opt_level : Option < Level > ,
1808
1810
blk : & fn ( v : Res < fd_t > ) ) {
1809
- blk ( Res ( Arg {
1811
+ blk ( Res :: new ( Arg {
1810
1812
val : fd. fd , opt_level : opt_level,
1811
1813
fsync_fn : |fd, l| os:: fsync_fd ( fd, l) as int
1812
1814
} ) ) ;
@@ -1818,7 +1820,7 @@ pub mod fsync {
1818
1820
// Call o.fsync after executing blk
1819
1821
pub fn obj_sync ( o : @FSyncable , opt_level : Option < Level > ,
1820
1822
blk : & fn ( v : Res < @FSyncable > ) ) {
1821
- blk ( Res ( Arg {
1823
+ blk ( Res :: new ( Arg {
1822
1824
val : o, opt_level : opt_level,
1823
1825
fsync_fn : |o, l| o. fsync ( l)
1824
1826
} ) ) ;
@@ -1993,7 +1995,7 @@ mod tests {
1993
1995
1994
1996
#[test]
1995
1997
fn bytes_buffer_overwrite() {
1996
- let wr = BytesWriter();
1998
+ let wr = BytesWriter::new ();
1997
1999
wr.write([0u8, 1u8, 2u8, 3u8]);
1998
2000
assert!(*wr.bytes == ~[0u8, 1u8, 2u8, 3u8]);
1999
2001
wr.seek(-2, SeekCur);
0 commit comments