binance-async 0.3.0

Rust Library for the Binance API (Async)
Documentation
use crate::models::{
    CanceledOrder, NewOrderResponseType, OrderSide, OrderType, PositionSide, Product, TimeInForce,
    WorkingType,
};
use reqwest::Method;
use rust_decimal::Decimal;

crate::define_request! {
    Name => NewOrder;
    Product => Product::UsdMFutures;
    Endpoint => "/fapi/v1/order";
    Method => Method::POST;
    Signed => true;
    Request => {
        pub symbol: String,
        pub side: OrderSide,
        pub position_side: Option<PositionSide>,
        pub r#type: OrderType,
        pub time_in_force: Option<TimeInForce>,
        pub quantity: Option<Decimal>,
        pub reduce_only: Option<bool>,
        pub price: Option<Decimal>,
        pub new_client_order_id: Option<String>,
        pub stop_price: Option<Decimal>,
        pub close_position: Option<bool>,
        pub activation_price: Option<Decimal>,
        pub callback_rate: Option<Decimal>,
        pub working_type: Option<WorkingType>,
        pub price_protect: Option<Decimal>,
        pub new_order_resp_type: Option<NewOrderResponseType>,
    };
    Response => CanceledOrder;
}

crate::define_request! {
    Name => CancelOrder;
    Product => Product::UsdMFutures;
    Endpoint => "/fapi/v1/order";
    Method => Method::DELETE;
    Signed => true;
    Request => {
        pub symbol: String,
        pub order_id: Option<u64>,
        pub orig_client_order_id: Option<String>
    };
    Response => CanceledOrder;
}

crate::define_request! {
    Name => CancelMultipleOrders;
    Product => Product::UsdMFutures;
    Endpoint => "/fapi/v1/batchOrders";
    Method => Method::DELETE;
    Signed => true;
    Request => {
        pub symbol: String,
        pub order_id_list: Vec<u64>,
        pub orig_client_order_id_list: Vec<String>,
    };
    Response => Vec<CanceledOrder>;
}