From d2cfd543f764c4a3bab9149fe54233c4aa20e6d5 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Mon, 10 Mar 2014 20:47:47 -0700 Subject: [PATCH] serialize: make Paths serializable --- src/libserialize/serialize.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/libserialize/serialize.rs b/src/libserialize/serialize.rs index a94df9975a40b..115bb6cb6f3cf 100644 --- a/src/libserialize/serialize.rs +++ b/src/libserialize/serialize.rs @@ -14,6 +14,7 @@ Core encoding and decoding interfaces. */ +use std::path; use std::rc::Rc; use std::vec; use std::vec_ng::Vec; @@ -625,6 +626,32 @@ impl< } } +impl Encodable for path::posix::Path { + fn encode(&self, e: &mut E) { + self.as_vec().encode(e) + } +} + +impl Decodable for path::posix::Path { + fn decode(d: &mut D) -> path::posix::Path { + let bytes: ~[u8] = Decodable::decode(d); + path::posix::Path::new(bytes) + } +} + +impl Encodable for path::windows::Path { + fn encode(&self, e: &mut E) { + self.as_vec().encode(e) + } +} + +impl Decodable for path::windows::Path { + fn decode(d: &mut D) -> path::windows::Path { + let bytes: ~[u8] = Decodable::decode(d); + path::windows::Path::new(bytes) + } +} + // ___________________________________________________________________________ // Helper routines //