Skip to content

Commit 75cedf8

Browse files
committed
uuid: serialize test and documentations
1 parent 023466c commit 75cedf8

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

src/libextra/uuid.rs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,14 +488,16 @@ impl TotalEq for Uuid {
488488
}
489489
}
490490

491-
// FIXME #9845: Test these
491+
// FIXME #9845: Test these more thoroughly
492492
impl<T: Encoder> Encodable<T> for Uuid {
493+
/// Encode a UUID as a hypenated string
493494
fn encode(&self, e: &mut T) {
494495
e.emit_str(self.to_hyphenated_str());
495496
}
496497
}
497498

498499
impl<T: Decoder> Decodable<T> for Uuid {
500+
/// Decode a UUID from a string
499501
fn decode(d: &mut T) -> Uuid {
500502
from_str(d.read_str()).unwrap()
501503
}
@@ -785,6 +787,20 @@ mod test {
785787
assert!(ub.len() == 16);
786788
assert!(! ub.iter().all(|&b| b == 0));
787789
}
790+
791+
#[test]
792+
fn test_serialize_round_trip() {
793+
use std;
794+
use ebml;
795+
use serialize::{Encodable, Decodable};
796+
797+
let u = Uuid::new_v4();
798+
let bytes = do std::io::with_bytes_writer |wr| {
799+
u.encode(&mut ebml::writer::Encoder(wr));
800+
};
801+
let u2 = Decodable::decode(&mut ebml::reader::Decoder(ebml::reader::Doc(@bytes)));
802+
assert_eq!(u, u2);
803+
}
788804
}
789805

790806
#[cfg(test)]

0 commit comments

Comments
 (0)