pub mod fee;
pub mod vault;
use crate::market::fee::MarketFee;
use crate::market::vault::MarketVault;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
pub struct Market {
vault: MarketVault,
fee: MarketFee,
}
impl Market {
pub fn new(fee: MarketFee) -> Self {
Self {
vault: MarketVault::default(),
fee: fee.clamped(),
}
}
#[inline]
pub fn vault(&self) -> &MarketVault {
&self.vault
}
pub(crate) fn vault_mut(&mut self) -> &mut MarketVault {
&mut self.vault
}
#[inline]
pub fn fee(&self) -> MarketFee {
self.fee
}
pub(crate) fn fee_mut(&mut self) -> &mut MarketFee {
&mut self.fee
}
}