#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum PositionMode {
Netting,
Hedged,
}
impl std::fmt::Display for PositionMode {
fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
formatter.write_str(match self {
Self::Netting => "netting",
Self::Hedged => "hedged",
})
}
}
#[cfg(test)]
mod tests {
use super::PositionMode;
#[test]
fn supports_netting_mode() {
assert_eq!(PositionMode::Netting, PositionMode::Netting);
}
#[test]
fn supports_hedged_mode() {
assert_eq!(PositionMode::Hedged, PositionMode::Hedged);
}
#[test]
fn display_netting_mode() {
assert_eq!(PositionMode::Netting.to_string(), "netting");
}
#[test]
fn display_hedged_mode() {
assert_eq!(PositionMode::Hedged.to_string(), "hedged");
}
}