use crate::common::request_helpers;
use crate::contracts::Contract;
use crate::protocol::{check_version, Features};
use crate::{Client, Error};
use super::{common::decoders, common::encoders, FundamentalData, FundamentalReportType};
impl Client {
pub async fn fundamental_data(&self, contract: &Contract, report_type: FundamentalReportType) -> Result<FundamentalData, Error> {
check_version(self.server_version(), Features::FUNDAMENTAL_DATA)?;
request_helpers::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),
)
.await
}
}
#[cfg(test)]
#[path = "async_tests.rs"]
mod tests;