use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum EventCode {
#[serde(rename = "ReadyForReceive")]
ReadyForReceive,
#[serde(rename = "PickupDone")]
PickupDone,
#[serde(rename = "Delivered")]
Delivered,
#[serde(rename = "Departed")]
Departed,
#[serde(rename = "DeliveryAttempted")]
DeliveryAttempted,
#[serde(rename = "Lost")]
Lost,
#[serde(rename = "OutForDelivery")]
OutForDelivery,
#[serde(rename = "ArrivedAtCarrierFacility")]
ArrivedAtCarrierFacility,
#[serde(rename = "Rejected")]
Rejected,
#[serde(rename = "Undeliverable")]
Undeliverable,
#[serde(rename = "PickupCancelled")]
PickupCancelled,
#[serde(rename = "ReturnInitiated")]
ReturnInitiated,
#[serde(rename = "AvailableForPickup")]
AvailableForPickup,
#[serde(rename = "RecipientRequestedAlternateDeliveryTiming")]
RecipientRequestedAlternateDeliveryTiming,
}
impl std::fmt::Display for EventCode {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::ReadyForReceive => write!(f, "ReadyForReceive"),
Self::PickupDone => write!(f, "PickupDone"),
Self::Delivered => write!(f, "Delivered"),
Self::Departed => write!(f, "Departed"),
Self::DeliveryAttempted => write!(f, "DeliveryAttempted"),
Self::Lost => write!(f, "Lost"),
Self::OutForDelivery => write!(f, "OutForDelivery"),
Self::ArrivedAtCarrierFacility => write!(f, "ArrivedAtCarrierFacility"),
Self::Rejected => write!(f, "Rejected"),
Self::Undeliverable => write!(f, "Undeliverable"),
Self::PickupCancelled => write!(f, "PickupCancelled"),
Self::ReturnInitiated => write!(f, "ReturnInitiated"),
Self::AvailableForPickup => write!(f, "AvailableForPickup"),
Self::RecipientRequestedAlternateDeliveryTiming => write!(f, "RecipientRequestedAlternateDeliveryTiming"),
}
}
}
impl Default for EventCode {
fn default() -> EventCode {
Self::ReadyForReceive
}
}