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