replace

Macro replace 

Source
macro_rules! replace {
    (
        old_ref_num: $f1:expr,
        new_ref_num: $f2:expr,
        quantity: $f3:expr,
        price: $f4:expr,
        time_in_force: $f5:expr,
        display: $f6:expr,
        intermarket_sweep: $f7:expr,
        order_token: $f8:expr $(,)?
    ) => { ... };
}
Expand description

Create a ReplaceOrder request message. WARN: PANIC! This constructor will PANIC if quantity >= 1,000,000.

use slouch::{ 
    replace, 
    types::*,
};

let request1 = replace!{
    old_ref_num: UserRefNum::new(),
    new_ref_num: UserRefNum::new(),
    quantity: 420u32,
    price: Price::new(35001).unwrap(),
    time_in_force: TimeInForce::Day,
    display: Display::Visible,
    intermarket_sweep: false,
    order_token: OrderToken::from("To The Moon").unwrap()
};

use slouch::msg::{ OuchRequest, ReplaceOrder };

let request2 = OuchRequest::ReplaceOrder(
    ReplaceOrder::new(
        UserRefNum::new(), 
        UserRefNum::new(), 
        420u32,
        Price::new(35001).unwrap(),
        TimeInForce::Day,
        Display::Visible,
        false,
        OrderToken::from("To The Moon").unwrap()
    ).unwrap()
);

assert_eq!(request1, request2);