use crate::{impl_default, std::fmt, PayoutDenominationList};
use super::Method;
#[derive(Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize)]
pub struct DispenseEvent(PayoutDenominationList);
impl DispenseEvent {
pub const fn new() -> Self {
Self(PayoutDenominationList::new())
}
pub const fn create(list: PayoutDenominationList) -> Self {
Self(list)
}
pub const fn method() -> Method {
Method::Dispense
}
pub const fn to_str(&self) -> &'static str {
Self::method().to_str()
}
pub const fn len() -> usize {
1
}
pub const fn as_inner(&self) -> &PayoutDenominationList {
&self.0
}
pub fn as_inner_mut(&mut self) -> &mut PayoutDenominationList {
&mut self.0
}
pub fn to_inner(self) -> PayoutDenominationList {
self.0
}
}
impl From<&DispenseEvent> for &'static str {
fn from(val: &DispenseEvent) -> Self {
val.to_str()
}
}
impl From<DispenseEvent> for &'static str {
fn from(val: DispenseEvent) -> Self {
(&val).into()
}
}
impl fmt::Display for DispenseEvent {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, r#"{{"{}"}}"#, self.to_str())
}
}
impl_default!(DispenseEvent);