pub mod client;
pub mod data;
pub mod error;
pub mod request;
pub mod sources;
pub mod traits;
pub use client::DataClient;
pub use data::{
AdjustType, BillboardDetail, BillboardItem, BlockTradeData, BondCurrentData, CapitalFlowData,
CapitalFlowHistory, ConvertibleBondCode, CurrentMarketData, DividendData, ETFCode,
ETFCurrentData, ETFMarketData, ETFMinuteData, EarningsForecast, Exchange, FundHolding, IPOData,
InstitutionalResearchData, KLineType, MarginTradingData, MarketData, MinuteData, NewsArticle,
NewsCategory, NewsContent, NewsListResult, NewsSearchResult, OrderBookData, ResearchReportData,
StockCode, StockConnectData, StockInfo, StockValuation, TickData, TopHolder,
};
pub use error::{DataError, DataResult};
pub use request::{RequestConfig, RequestManager};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub fn create_client() -> DataClient {
DataClient::new()
}
pub fn configure_proxy(proxy_url: &str) -> RequestConfig {
RequestConfig::default().with_proxy(proxy_url)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_version() {
assert!(!VERSION.is_empty());
}
#[test]
fn test_create_client() {
let client = create_client();
assert_eq!(client.market_source_count(), 0);
}
#[test]
fn test_configure_proxy() {
let config = configure_proxy("http://127.0.0.1:8080");
assert_eq!(config.proxy, Some("http://127.0.0.1:8080".to_string()));
}
}