use crate::client::sync::Client;
use crate::common::request_helpers;
use crate::contracts::Contract;
use crate::protocol::{check_version, Features};
use crate::Error;
use super::{common::decoders, common::encoders, FundamentalData, FundamentalReportType};
impl Client {
pub fn fundamental_data(&self, contract: &Contract, report_type: FundamentalReportType) -> Result<FundamentalData, Error> {
check_version(self.server_version, Features::FUNDAMENTAL_DATA)?;
request_helpers::blocking::one_shot_request_with_retry(
self,
|request_id| encoders::encode_request_fundamental_data(request_id, contract, report_type),
decoders::decode_fundamental_data_message,
|| Err(Error::UnexpectedEndOfStream),
)
}
}
#[cfg(test)]
#[path = "sync_tests.rs"]
mod tests;