File tree Expand file tree Collapse file tree 1 file changed +17
-1
lines changed Expand file tree Collapse file tree 1 file changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -488,14 +488,16 @@ impl TotalEq for Uuid {
488
488
}
489
489
}
490
490
491
- // FIXME #9845: Test these
491
+ // FIXME #9845: Test these more thoroughly
492
492
impl < T : Encoder > Encodable < T > for Uuid {
493
+ /// Encode a UUID as a hypenated string
493
494
fn encode ( & self , e : & mut T ) {
494
495
e. emit_str ( self . to_hyphenated_str ( ) ) ;
495
496
}
496
497
}
497
498
498
499
impl < T : Decoder > Decodable < T > for Uuid {
500
+ /// Decode a UUID from a string
499
501
fn decode ( d : & mut T ) -> Uuid {
500
502
from_str ( d. read_str ( ) ) . unwrap ( )
501
503
}
@@ -785,6 +787,20 @@ mod test {
785
787
assert ! ( ub. len( ) == 16 ) ;
786
788
assert ! ( ! ub. iter( ) . all( |& b| b == 0 ) ) ;
787
789
}
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
+ }
788
804
}
789
805
790
806
#[ cfg( test) ]
You can’t perform that action at this time.
0 commit comments