core/rustybot/src/positions.rs
2021-01-02 15:22:48 +00:00

44 lines
853 B
Rust

use bitfinex::positions::Position;
#[derive(Copy, Clone)]
pub enum PositionState {
Critical,
Loss,
BreakEven,
MinimumProfit,
Profit,
}
impl PositionState {
fn color(self) -> String {
match self {
PositionState::Critical | PositionState::Loss => { "red" }
PositionState::BreakEven => { "yellow" }
PositionState::MinimumProfit | PositionState::Profit => { "green" }
}.into()
}
}
#[derive(Clone)]
pub struct PositionWrapper {
position: Position,
net_pl: f64,
net_pl_perc: f64,
state: PositionState,
}
impl PositionWrapper {
pub fn new(position: Position, net_pl: f64, net_pl_perc: f64, state: PositionState) -> Self {
PositionWrapper {
position,
net_pl,
net_pl_perc,
state,
}
}
}