changes
This commit is contained in:
21
src/main.rs
21
src/main.rs
@@ -829,6 +829,7 @@ enum Result {
|
|||||||
AddedTrader(usize,String),
|
AddedTrader(usize,String),
|
||||||
AddedAsset(usize,String),
|
AddedAsset(usize,String),
|
||||||
PlacedOrder(usize, Vec<String>),
|
PlacedOrder(usize, Vec<String>),
|
||||||
|
RetractedOrder(usize),
|
||||||
FundsRemaining(FiNum),
|
FundsRemaining(FiNum),
|
||||||
ExecutedBatch(Vec<String>),
|
ExecutedBatch(Vec<String>),
|
||||||
Error(String),
|
Error(String),
|
||||||
@@ -844,7 +845,7 @@ enum Command {
|
|||||||
Order { user_id: usize, sell_type: usize, sell_qty: FiNum, buy_type: usize, buy_qty: FiNum },
|
Order { user_id: usize, sell_type: usize, sell_qty: FiNum, buy_type: usize, buy_qty: FiNum },
|
||||||
OrderBatch { user_id: usize, sell_type: usize, sell_qty: FiNum, buy_type: usize, buy_qty: FiNum },
|
OrderBatch { user_id: usize, sell_type: usize, sell_qty: FiNum, buy_type: usize, buy_qty: FiNum },
|
||||||
ExecuteBatch { asset_type0: usize, strike0: FiNum, asset_type1: usize, strike1: FiNum },
|
ExecuteBatch { asset_type0: usize, strike0: FiNum, asset_type1: usize, strike1: FiNum },
|
||||||
Retract { order_id: usize },
|
RetractOrder { order_id: usize },
|
||||||
Error(String),
|
Error(String),
|
||||||
NOP(String),
|
NOP(String),
|
||||||
None,
|
None,
|
||||||
@@ -869,7 +870,7 @@ impl Command {
|
|||||||
=> format!("ORB {} {} {} {} {}",user_id,sell_type,sell_qty.serialize(),buy_type,buy_qty.serialize()),
|
=> format!("ORB {} {} {} {} {}",user_id,sell_type,sell_qty.serialize(),buy_type,buy_qty.serialize()),
|
||||||
Self::ExecuteBatch { asset_type0, strike0, asset_type1, strike1 }
|
Self::ExecuteBatch { asset_type0, strike0, asset_type1, strike1 }
|
||||||
=> format!("EXE {} {} {} {}",asset_type0,strike0.serialize(),asset_type1,strike1.serialize()),
|
=> format!("EXE {} {} {} {}",asset_type0,strike0.serialize(),asset_type1,strike1.serialize()),
|
||||||
Self::Retract { order_id } => format!("RE {}",order_id),
|
Self::RetractOrder { order_id } => format!("RE {}",order_id),
|
||||||
Self::Error(str) => format!("NOP Error: {}",str),
|
Self::Error(str) => format!("NOP Error: {}",str),
|
||||||
Self::NOP(str) => format!("NOP {}",clean(str)),
|
Self::NOP(str) => format!("NOP {}",clean(str)),
|
||||||
_ => format!("NOP (This should never happen)"),
|
_ => format!("NOP (This should never happen)"),
|
||||||
@@ -894,7 +895,7 @@ impl Command {
|
|||||||
Self::OrderBatch { user_id: user_id.parse::<usize>().unwrap(), sell_type: sell_type.parse::<usize>().unwrap(), sell_qty: FiNum::new_deserialize(sell_qty),
|
Self::OrderBatch { user_id: user_id.parse::<usize>().unwrap(), sell_type: sell_type.parse::<usize>().unwrap(), sell_qty: FiNum::new_deserialize(sell_qty),
|
||||||
buy_type: buy_type.parse::<usize>().unwrap(), buy_qty: FiNum::new_deserialize(buy_qty) },
|
buy_type: buy_type.parse::<usize>().unwrap(), buy_qty: FiNum::new_deserialize(buy_qty) },
|
||||||
["RE",order_id] =>
|
["RE",order_id] =>
|
||||||
Self::Retract { order_id: order_id:parse::<usize>().unwrap() },
|
Self::RetractOrder { order_id: order_id.parse::<usize>().unwrap() },
|
||||||
["EXE",asset_type0,strike0,asset_type1,strike1] =>
|
["EXE",asset_type0,strike0,asset_type1,strike1] =>
|
||||||
Self::ExecuteBatch { asset_type0: asset_type0.parse::<usize>().unwrap(),strike0: FiNum::new_deserialize(strike0), asset_type1: asset_type1.parse::<usize>().unwrap(), strike1: FiNum::new_deserialize(strike1) },
|
Self::ExecuteBatch { asset_type0: asset_type0.parse::<usize>().unwrap(),strike0: FiNum::new_deserialize(strike0), asset_type1: asset_type1.parse::<usize>().unwrap(), strike1: FiNum::new_deserialize(strike1) },
|
||||||
["NOP", many_things @ ..] => Self::NOP(clean(&line)),
|
["NOP", many_things @ ..] => Self::NOP(clean(&line)),
|
||||||
@@ -963,7 +964,7 @@ impl Market {
|
|||||||
self.make_order(*user_id,*sell_type,*buy_type,*sell_qty,*buy_qty,false)
|
self.make_order(*user_id,*sell_type,*buy_type,*sell_qty,*buy_qty,false)
|
||||||
}
|
}
|
||||||
Command::RetractOrder { order_id } => {
|
Command::RetractOrder { order_id } => {
|
||||||
self.retract_order(*order_id)
|
Result::Error(format!("Retract Order {} not yet implemented.",order_id))
|
||||||
}
|
}
|
||||||
Command::ExecuteBatch { asset_type0, strike0, asset_type1, strike1 } => {
|
Command::ExecuteBatch { asset_type0, strike0, asset_type1, strike1 } => {
|
||||||
self.execute_batch(*asset_type0, *strike0, *asset_type1, *strike1)
|
self.execute_batch(*asset_type0, *strike0, *asset_type1, *strike1)
|
||||||
@@ -1031,11 +1032,13 @@ fn tokens_to_command(m: &Market, logged_in: usize, tokens: Vec<&str>,line: &str)
|
|||||||
Command::SubFunds { user_id: user, asset_id: cur, amt: qty }
|
Command::SubFunds { user_id: user, asset_id: cur, amt: qty }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
["retract", order_id ] => {
|
["retract", p_order_id ] => {
|
||||||
let order_id=order_id.parse();
|
let order_id:usize=p_order_id.parse().unwrap();
|
||||||
if m.order_finder.contains_key(order_id) {
|
if !m.order_finder.contains_key(&order_id) { return Command::Error(format!("Order not found: {}",p_order_id)) }
|
||||||
{*}
|
let trader=&m.traders[logged_in];
|
||||||
Command::Retract { order_id: order_id }
|
let order_type=trader.order_finder.get(&order_id);
|
||||||
|
let order_queue=m.orders.get(order_type.expect("Retrieving Order Queue"));
|
||||||
|
Command::RetractOrder { order_id: order_id }
|
||||||
}
|
}
|
||||||
["order", qty0, cur0, qty1, cur1 ] => {
|
["order", qty0, cur0, qty1, cur1 ] => {
|
||||||
let qty0=FiNum::new_str(qty0);
|
let qty0=FiNum::new_str(qty0);
|
||||||
|
|||||||
Reference in New Issue
Block a user