diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2014-03-10 20:47:47 -0700 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2014-03-12 18:58:54 -0700 |
| commit | d2cfd543f764c4a3bab9149fe54233c4aa20e6d5 (patch) | |
| tree | dfa0f8b86119fb5c5b2195f90e29d7e344bcc591 /src/libserialize/serialize.rs | |
| parent | be12c9f753fa742dd76127a600ba9f2447d19b39 (diff) | |
| download | rust-d2cfd543f764c4a3bab9149fe54233c4aa20e6d5.tar.gz rust-d2cfd543f764c4a3bab9149fe54233c4aa20e6d5.zip | |
serialize: make Paths serializable
Diffstat (limited to 'src/libserialize/serialize.rs')
| -rw-r--r-- | src/libserialize/serialize.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/libserialize/serialize.rs b/src/libserialize/serialize.rs index a94df9975a4..115bb6cb6f3 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<E: Encoder> Encodable<E> for path::posix::Path { + fn encode(&self, e: &mut E) { + self.as_vec().encode(e) + } +} + +impl<D: Decoder> Decodable<D> for path::posix::Path { + fn decode(d: &mut D) -> path::posix::Path { + let bytes: ~[u8] = Decodable::decode(d); + path::posix::Path::new(bytes) + } +} + +impl<E: Encoder> Encodable<E> for path::windows::Path { + fn encode(&self, e: &mut E) { + self.as_vec().encode(e) + } +} + +impl<D: Decoder> Decodable<D> 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 // |
