pub mod expiring_option;
pub mod policy_channel;
pub mod policy_deque;
#[derive(Debug, Copy, Clone, Eq, PartialEq, Default)]
pub enum DeliveryPolicy {
#[default]
Always,
Optional,
Single,
SingleOptional,
}
pub trait MessageDeliveryPolicy {
fn delivery_policy(&self) -> DeliveryPolicy {
DeliveryPolicy::Always
}
fn priority(&self) -> usize {
0
}
#[doc(hidden)]
fn is_delivery_policy_single(&self) -> bool {
let dp = self.delivery_policy();
dp == DeliveryPolicy::Single || dp == DeliveryPolicy::SingleOptional
}
#[doc(hidden)]
fn is_delivery_policy_optional(&self) -> bool {
let dp = self.delivery_policy();
dp == DeliveryPolicy::Optional || dp == DeliveryPolicy::SingleOptional
}
}