1 use super::NaiveTime; 2 use rustc_serialize::{Decodable, Decoder, Encodable, Encoder}; 3 4 impl Encodable for NaiveTime { encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>5 fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error> { 6 format!("{:?}", self).encode(s) 7 } 8 } 9 10 impl Decodable for NaiveTime { decode<D: Decoder>(d: &mut D) -> Result<NaiveTime, D::Error>11 fn decode<D: Decoder>(d: &mut D) -> Result<NaiveTime, D::Error> { 12 d.read_str()?.parse().map_err(|_| d.error("invalid time")) 13 } 14 } 15 16 #[cfg(test)] 17 mod tests { 18 use crate::naive::time::{test_decodable_json, test_encodable_json}; 19 use rustc_serialize::json; 20 21 #[test] test_encodable()22 fn test_encodable() { 23 test_encodable_json(json::encode); 24 } 25 26 #[test] test_decodable()27 fn test_decodable() { 28 test_decodable_json(json::decode); 29 } 30 } 31