diff options
| author | Daniel Micay <danielmicay@gmail.com> | 2014-11-11 16:01:29 -0500 |
|---|---|---|
| committer | Daniel Micay <danielmicay@gmail.com> | 2014-11-18 01:09:46 -0500 |
| commit | 85c2c2e38ce7c606fac1e9c8fa9d2ab71b35c8c8 (patch) | |
| tree | 578802f9e774e104b1a271b92946208e0e0a0675 /src/libstd/io/extensions.rs | |
| parent | 9c96a79a74f10bed18b031ce0ac4126c56d6cfb3 (diff) | |
| download | rust-85c2c2e38ce7c606fac1e9c8fa9d2ab71b35c8c8.tar.gz rust-85c2c2e38ce7c606fac1e9c8fa9d2ab71b35c8c8.zip | |
implement Writer for Vec<u8>
The trait has an obvious, sensible implementation directly on vectors so the MemWriter wrapper is unnecessary. This will halt the trend towards providing all of the vector methods on MemWriter along with eliminating the noise caused by conversions between the two types. It also provides the useful default Writer methods on Vec<u8>. After the type is removed and code has been migrated, it would make sense to add a new implementation of MemWriter with seeking support. The simple use cases can be covered with vectors alone, and ones with the need for seeks can use a new MemWriter implementation.
Diffstat (limited to 'src/libstd/io/extensions.rs')
| -rw-r--r-- | src/libstd/io/extensions.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/libstd/io/extensions.rs b/src/libstd/io/extensions.rs index 70bf90eef93..4b2ffb4d559 100644 --- a/src/libstd/io/extensions.rs +++ b/src/libstd/io/extensions.rs @@ -171,7 +171,7 @@ pub fn u64_from_be_bytes(data: &[u8], start: uint, size: uint) -> u64 { mod test { use prelude::*; use io; - use io::{MemReader, MemWriter, BytesReader}; + use io::{MemReader, BytesReader}; struct InitialZeroByteReader { count: int, @@ -397,12 +397,12 @@ mod test { fn test_read_write_le_mem() { let uints = [0, 1, 2, 42, 10_123, 100_123_456, ::u64::MAX]; - let mut writer = MemWriter::new(); + let mut writer = Vec::new(); for i in uints.iter() { writer.write_le_u64(*i).unwrap(); } - let mut reader = MemReader::new(writer.unwrap()); + let mut reader = MemReader::new(writer); for i in uints.iter() { assert!(reader.read_le_u64().unwrap() == *i); } @@ -413,12 +413,12 @@ mod test { fn test_read_write_be() { let uints = [0, 1, 2, 42, 10_123, 100_123_456, ::u64::MAX]; - let mut writer = MemWriter::new(); + let mut writer = Vec::new(); for i in uints.iter() { writer.write_be_u64(*i).unwrap(); } - let mut reader = MemReader::new(writer.unwrap()); + let mut reader = MemReader::new(writer); for i in uints.iter() { assert!(reader.read_be_u64().unwrap() == *i); } @@ -428,12 +428,12 @@ mod test { fn test_read_be_int_n() { let ints = [::i32::MIN, -123456, -42, -5, 0, 1, ::i32::MAX]; - let mut writer = MemWriter::new(); + let mut writer = Vec::new(); for i in ints.iter() { writer.write_be_i32(*i).unwrap(); } - let mut reader = MemReader::new(writer.unwrap()); + let mut reader = MemReader::new(writer); for i in ints.iter() { // this tests that the sign extension is working // (comparing the values as i32 would not test this) @@ -446,10 +446,10 @@ mod test { //big-endian floating-point 8.1250 let buf = vec![0x41, 0x02, 0x00, 0x00]; - let mut writer = MemWriter::new(); + let mut writer = Vec::new(); writer.write(buf.as_slice()).unwrap(); - let mut reader = MemReader::new(writer.unwrap()); + let mut reader = MemReader::new(writer); let f = reader.read_be_f32().unwrap(); assert!(f == 8.1250); } @@ -458,11 +458,11 @@ mod test { fn test_read_write_f32() { let f:f32 = 8.1250; - let mut writer = MemWriter::new(); + let mut writer = Vec::new(); writer.write_be_f32(f).unwrap(); writer.write_le_f32(f).unwrap(); - let mut reader = MemReader::new(writer.unwrap()); + let mut reader = MemReader::new(writer); assert!(reader.read_be_f32().unwrap() == 8.1250); assert!(reader.read_le_f32().unwrap() == 8.1250); } |
