1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
use error::Result; use xdr::{FromXdr, ToXdr}; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct TimeBounds { pub lower: u64, pub upper: u64, } impl ToXdr<TimeBounds> for ::TimeBounds { fn to_xdr(&self) -> Result<TimeBounds> { let lower = match *self.lower() { None => 0, Some(ref t) => t.0 as u64, }; let upper = match *self.upper() { None => 0, Some(ref t) => t.0 as u64, }; Ok(TimeBounds { lower, upper }) } } impl<'de> FromXdr<'de, TimeBounds> for ::TimeBounds { fn from_xdr(time: TimeBounds) -> Result<::TimeBounds> { let lower = if time.lower == 0 { None } else { Some(::UnixTimestamp(time.lower as i64)) }; let upper = if time.upper == 0 { None } else { Some(::UnixTimestamp(time.upper as i64)) }; Ok(::TimeBounds::new(lower, upper)) } }