ibapi 3.0.0

A Rust implementation of the Interactive Brokers TWS API, providing a reliable and user friendly interface for TWS and IB Gateway. Designed with a focus on simplicity and performance.
Documentation
use crate::contracts::Contract;
use crate::protocol::{check_version, Features};
use crate::Error;

pub(crate) fn verify_contract(server_version: i32, contract: &Contract) -> Result<(), Error> {
    if contract.security_id_type.is_some() || !contract.security_id.is_empty() {
        check_version(server_version, Features::SEC_ID_TYPE)?
    }

    if !contract.trading_class.is_empty() {
        check_version(server_version, Features::TRADING_CLASS)?
    }

    if !contract.primary_exchange.is_empty() {
        check_version(server_version, Features::LINKING)?
    }

    if !contract.issuer_id.is_empty() {
        check_version(server_version, Features::BOND_ISSUERID)?
    }

    Ok(())
}