diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2013-10-21 17:11:42 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2013-10-24 14:21:58 -0700 |
| commit | c4907cfd14f9afa1fc26e2fdddf128f834fe5ce5 (patch) | |
| tree | f46e25052dc8cbb31dce08c79060f05c84470771 /src/libextra | |
| parent | 620ab3853abf99ecea3a3d055f47cd6d06433c95 (diff) | |
| download | rust-c4907cfd14f9afa1fc26e2fdddf128f834fe5ce5.tar.gz rust-c4907cfd14f9afa1fc26e2fdddf128f834fe5ce5.zip | |
Remove std::io from ebml
Diffstat (limited to 'src/libextra')
| -rw-r--r-- | src/libextra/ebml.rs | 68 | ||||
| -rw-r--r-- | src/libextra/uuid.rs | 10 |
2 files changed, 38 insertions, 40 deletions
diff --git a/src/libextra/ebml.rs b/src/libextra/ebml.rs index 34515a2b955..1a21150d11b 100644 --- a/src/libextra/ebml.rs +++ b/src/libextra/ebml.rs @@ -96,17 +96,8 @@ pub mod reader { use std::cast::transmute; use std::int; - use std::io; use std::option::{None, Option, Some}; - #[cfg(target_arch = "x86")] - #[cfg(target_arch = "x86_64")] - use std::ptr::offset; - - #[cfg(target_arch = "x86")] - #[cfg(target_arch = "x86_64")] - use std::unstable::intrinsics::bswap32; - // ebml reading struct Res { @@ -144,6 +135,9 @@ pub mod reader { #[cfg(target_arch = "x86")] #[cfg(target_arch = "x86_64")] pub fn vuint_at(data: &[u8], start: uint) -> Res { + use std::ptr::offset; + use std::unstable::intrinsics::bswap32; + if data.len() - start < 4 { return vuint_at_slow(data, start); } @@ -178,8 +172,7 @@ pub mod reader { } } - #[cfg(target_arch = "arm")] - #[cfg(target_arch = "mips")] + #[cfg(not(target_arch = "x86"), not(target_arch = "x86_64"))] pub fn vuint_at(data: &[u8], start: uint) -> Res { vuint_at_slow(data, start) } @@ -265,17 +258,17 @@ pub mod reader { pub fn doc_as_u16(d: Doc) -> u16 { assert_eq!(d.end, d.start + 2u); - io::u64_from_be_bytes(*d.data, d.start, 2u) as u16 + ::std::io::u64_from_be_bytes(*d.data, d.start, 2u) as u16 } pub fn doc_as_u32(d: Doc) -> u32 { assert_eq!(d.end, d.start + 4u); - io::u64_from_be_bytes(*d.data, d.start, 4u) as u32 + ::std::io::u64_from_be_bytes(*d.data, d.start, 4u) as u32 } pub fn doc_as_u64(d: Doc) -> u64 { assert_eq!(d.end, d.start + 8u); - io::u64_from_be_bytes(*d.data, d.start, 8u) + ::std::io::u64_from_be_bytes(*d.data, d.start, 8u) } pub fn doc_as_i8(d: Doc) -> i8 { doc_as_u8(d) as i8 } @@ -614,11 +607,14 @@ pub mod writer { use std::cast; use std::clone::Clone; - use std::io; + use std::rt::io; + use std::rt::io::{Writer, Seek}; + use std::rt::io::mem::MemWriter; // ebml writing pub struct Encoder { - writer: @io::Writer, + // FIXME(#5665): this should take a trait object + writer: @mut MemWriter, priv size_positions: ~[uint], } @@ -631,7 +627,7 @@ pub mod writer { } } - fn write_sized_vuint(w: @io::Writer, n: uint, size: uint) { + fn write_sized_vuint(w: @mut MemWriter, n: uint, size: uint) { match size { 1u => w.write(&[0x80u8 | (n as u8)]), 2u => w.write(&[0x40u8 | ((n >> 8_u) as u8), n as u8]), @@ -643,7 +639,7 @@ pub mod writer { }; } - fn write_vuint(w: @io::Writer, n: uint) { + fn write_vuint(w: @mut MemWriter, n: uint) { if n < 0x7f_u { write_sized_vuint(w, n, 1u); return; } if n < 0x4000_u { write_sized_vuint(w, n, 2u); return; } if n < 0x200000_u { write_sized_vuint(w, n, 3u); return; } @@ -651,7 +647,7 @@ pub mod writer { fail!("vint to write too big: {}", n); } - pub fn Encoder(w: @io::Writer) -> Encoder { + pub fn Encoder(w: @mut MemWriter) -> Encoder { let size_positions: ~[uint] = ~[]; Encoder { writer: w, @@ -668,7 +664,7 @@ pub mod writer { write_vuint(self.writer, tag_id); // Write a placeholder four-byte size. - self.size_positions.push(self.writer.tell()); + self.size_positions.push(self.writer.tell() as uint); let zeroes: &[u8] = &[0u8, 0u8, 0u8, 0u8]; self.writer.write(zeroes); } @@ -676,10 +672,10 @@ pub mod writer { pub fn end_tag(&mut self) { let last_size_pos = self.size_positions.pop(); let cur_pos = self.writer.tell(); - self.writer.seek(last_size_pos as int, io::SeekSet); - let size = (cur_pos - last_size_pos - 4u); - write_sized_vuint(self.writer, size, 4u); - self.writer.seek(cur_pos as int, io::SeekSet); + self.writer.seek(last_size_pos as i64, io::SeekSet); + let size = (cur_pos as uint - last_size_pos - 4); + write_sized_vuint(self.writer, size as uint, 4u); + self.writer.seek(cur_pos as i64, io::SeekSet); debug!("End tag (size = {})", size); } @@ -697,19 +693,19 @@ pub mod writer { } pub fn wr_tagged_u64(&mut self, tag_id: uint, v: u64) { - do io::u64_to_be_bytes(v, 8u) |v| { + do ::std::io::u64_to_be_bytes(v, 8u) |v| { self.wr_tagged_bytes(tag_id, v); } } pub fn wr_tagged_u32(&mut self, tag_id: uint, v: u32) { - do io::u64_to_be_bytes(v as u64, 4u) |v| { + do ::std::io::u64_to_be_bytes(v as u64, 4u) |v| { self.wr_tagged_bytes(tag_id, v); } } pub fn wr_tagged_u16(&mut self, tag_id: uint, v: u16) { - do io::u64_to_be_bytes(v as u64, 2u) |v| { + do ::std::io::u64_to_be_bytes(v as u64, 2u) |v| { self.wr_tagged_bytes(tag_id, v); } } @@ -719,19 +715,19 @@ pub mod writer { } pub fn wr_tagged_i64(&mut self, tag_id: uint, v: i64) { - do io::u64_to_be_bytes(v as u64, 8u) |v| { + do ::std::io::u64_to_be_bytes(v as u64, 8u) |v| { self.wr_tagged_bytes(tag_id, v); } } pub fn wr_tagged_i32(&mut self, tag_id: uint, v: i32) { - do io::u64_to_be_bytes(v as u64, 4u) |v| { + do ::std::io::u64_to_be_bytes(v as u64, 4u) |v| { self.wr_tagged_bytes(tag_id, v); } } pub fn wr_tagged_i16(&mut self, tag_id: uint, v: i16) { - do io::u64_to_be_bytes(v as u64, 2u) |v| { + do ::std::io::u64_to_be_bytes(v as u64, 2u) |v| { self.wr_tagged_bytes(tag_id, v); } } @@ -963,18 +959,18 @@ mod tests { use serialize::Encodable; use serialize; - use std::io; + use std::rt::io::Decorator; + use std::rt::io::mem::MemWriter; use std::option::{None, Option, Some}; #[test] fn test_option_int() { fn test_v(v: Option<int>) { debug!("v == {:?}", v); - let bytes = do io::with_bytes_writer |wr| { - let mut ebml_w = writer::Encoder(wr); - v.encode(&mut ebml_w) - }; - let ebml_doc = reader::Doc(@bytes); + let wr = @mut MemWriter::new(); + let mut ebml_w = writer::Encoder(wr); + v.encode(&mut ebml_w); + let ebml_doc = reader::Doc(@wr.inner_ref().to_owned()); let mut deser = reader::Decoder(ebml_doc); let v1 = serialize::Decodable::decode(&mut deser); debug!("v1 == {:?}", v1); diff --git a/src/libextra/uuid.rs b/src/libextra/uuid.rs index 345cf64f128..b94b74a696c 100644 --- a/src/libextra/uuid.rs +++ b/src/libextra/uuid.rs @@ -522,6 +522,8 @@ mod test { use std::str; use std::rand; use std::num::Zero; + use std::rt::io::Decorator; + use std::rt::io::mem::MemWriter; #[test] fn test_new_nil() { @@ -795,10 +797,10 @@ mod test { use serialize::{Encodable, Decodable}; let u = Uuid::new_v4(); - let bytes = do std::io::with_bytes_writer |wr| { - u.encode(&mut ebml::writer::Encoder(wr)); - }; - let u2 = Decodable::decode(&mut ebml::reader::Decoder(ebml::reader::Doc(@bytes))); + let wr = @mut MemWriter::new(); + u.encode(&mut ebml::writer::Encoder(wr)); + let doc = ebml::reader::Doc(@wr.inner_ref().to_owned()); + let u2 = Decodable::decode(&mut ebml::reader::Decoder(doc)); assert_eq!(u, u2); } } |
