#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[non_exhaustive]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum FillType {
Trade,
Liquidation,
AutoDeleverage,
Settlement,
Funding,
}
impl std::fmt::Display for FillType {
fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
formatter.write_str(match self {
Self::Trade => "TRADE",
Self::Liquidation => "LIQUIDATION",
Self::AutoDeleverage => "AUTO_DELEVERAGE",
Self::Settlement => "SETTLEMENT",
Self::Funding => "FUNDING",
})
}
}
#[cfg(test)]
mod tests {
use super::FillType;
#[test]
fn display_uses_api_names() {
assert_eq!(FillType::Trade.to_string(), "TRADE");
assert_eq!(FillType::Liquidation.to_string(), "LIQUIDATION");
assert_eq!(FillType::AutoDeleverage.to_string(), "AUTO_DELEVERAGE");
assert_eq!(FillType::Settlement.to_string(), "SETTLEMENT");
assert_eq!(FillType::Funding.to_string(), "FUNDING");
}
}