use super::BasicDate; use serde::ser::{Serialize, SerializeStruct, Serializer}; /// Represents a date when a pickup will occur. Label describes which type of /// trash will be picked up. pub struct PickupTime { date: BasicDate, label: String, } impl PickupTime { /// Creates a new PickupTime instance. /// /// # Arguments /// /// * `date` - Date of pickup time /// * `label` - Type of trash pub fn new(date: BasicDate, label: String) -> PickupTime { PickupTime { date, label } } } impl Serialize for PickupTime { fn serialize(&self, serializer: S) -> Result where S: Serializer, { let mut s = serializer.serialize_struct("PickupTime", 2)?; s.serialize_field("date", &self.date)?; s.serialize_field("label", &self.label)?; s.end() } } // I'd put tests here, but there's barely anything to do