客户端与底层工具方法
这些方法用于构造客户端、管理 Token、执行底层请求或维护推送订阅状态。业务调用应优先使用具名 API;call_* 要求调用方自行保证方法名、版本、参数和目标类型匹配。
从配置构造客户端
签名
pub fn from_config(config: ClientConfig) -> Self参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| QuoteClient.config | ClientConfig | Rust 类型必填 | 无 |
| TradeClient.config | ClientConfig | Rust 类型必填 | 无 |
| 返回示例 |
无同步服务端响应。返回构造完成的客户端。
显式构造客户端
签名
pub fn new(http_client: HttpClient) -> Self
pub fn new(http_client: HttpClient, account: impl Into<String>) -> Self
pub fn new(config: ClientConfig, options: Option<PushClientOptions>) -> Self参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| QuoteClient.http_client | HttpClient | Rust 类型必填 | 无 |
| TradeClient.http_client | HttpClient | Rust 类型必填 | 无 |
| TradeClient.account | impl Into<String> | Rust 类型必填 | 无 |
| PushClient.config | ClientConfig | Rust 类型必填 | 无 |
| PushClient.options | Option<PushClientOptions> | 可选 | None(不序列化) |
| 返回示例 |
无同步服务端响应。返回构造完成的客户端。
构造机构交易客户端
签名
pub fn with_secret_key(http_client: HttpClient, account: impl Into<String>, secret_key: impl Into<String>) -> Self参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| http_client | HttpClient | Rust 类型必填 | 无 |
| account | impl Into<String> | Rust 类型必填 | 无 |
| secret_key | impl Into<String> | Rust 类型必填 | 无 |
| 返回示例 |
无同步服务端响应。返回带机构交易密钥的客户端。
查询新 Token
签名
pub async fn query_token(&self) -> Result<String, TigerError>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| none | - | Rust 类型必填 | 无 |
| 返回示例 |
"REDACTED_TOKEN"请求频率
基础限流为 10 次/分钟。query_token 与 refresh_token 均使用 user_token_refresh,共享此额度。
刷新 Token
签名
pub async fn refresh_token(&self, token_manager: Option<&crate::config::TokenManager>) -> Result<(), TigerError>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| QuoteClient.token_manager | Option<&crate::config::TokenManager> | 可选 | None(不序列化) |
| TradeClient.token_manager | Option<&crate::config::TokenManager> | 可选 | None(不序列化) |
| 返回示例 |
null请求频率
基础限流为 10 次/分钟。query_token 与 refresh_token 均使用 user_token_refresh,共享此额度。
启动 Token 自动刷新
签名
pub fn start_token_auto_refresh(&self, refresh_duration_secs: i64, check_interval_secs: u64, token_writer: Option<Box<dyn Fn(String) + Send + Sync + 'static>>) -> std::sync::Arc<crate::config::TokenManager>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| QuoteClient.refresh_duration_secs | i64 | Rust 类型必填 | 无 |
| QuoteClient.check_interval_secs | u64 | Rust 类型必填 | 无 |
| QuoteClient.token_writer | Option<Box<dyn Fn(String) + Send + Sync + 'static>> | 可选 | None(不序列化) |
| TradeClient.refresh_duration_secs | i64 | Rust 类型必填 | 无 |
| TradeClient.check_interval_secs | u64 | Rust 类型必填 | 无 |
| TradeClient.token_writer | Option<Box<dyn Fn(String) + Send + Sync + 'static>> | 可选 | None(不序列化) |
| 返回示例 |
无同步服务端响应。返回 TokenManager 句柄,用于停止后台刷新任务。
底层调用并解码目标类型
签名
pub async fn call_into<T, P>(&self, method: &str, params: P) -> Result<T, TigerError>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| method | &str | Rust 类型必填 | 无 |
| params | P | Rust 类型必填 | 无 |
| 返回示例 |
{}示例假定调用方将 T 选择为 JSON 对象;实际形状由 T 决定。
指定版本的底层调用
签名
pub async fn call_into_versioned<T, P>(&self, method: &str, params: P, version: Option<&str>) -> Result<T, TigerError>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| method | &str | Rust 类型必填 | 无 |
| params | P | Rust 类型必填 | 无 |
| version | Option<&str> | 可选 | None(不序列化) |
| 返回示例 |
{}示例假定调用方将 T 选择为 JSON 对象;实际形状由 T 决定。
解包 items 列表
签名
pub async fn call_into_items<T, P>(&self, method: &str, params: P) -> Result<Vec<T>, TigerError>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| QuoteClient.method | &str | Rust 类型必填 | 无 |
| QuoteClient.params | P | Rust 类型必填 | 无 |
| TradeClient.method | &str | Rust 类型必填 | 无 |
| TradeClient.params | P | Rust 类型必填 | 无 |
| 返回示例 |
[]统一列表或单对象响应
签名
pub async fn call_into_list_or_object<T, P>(&self, method: &str, params: P) -> Result<Vec<T>, TigerError>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| method | &str | Rust 类型必填 | 无 |
| params | P | Rust 类型必填 | 无 |
| 返回示例 |
[]底层可空调用
签名
pub async fn call_optional<T, P>(&self, method: &str, params: P) -> Result<Option<T>, TigerError>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| QuoteClient.method | &str | Rust 类型必填 | 无 |
| QuoteClient.params | P | Rust 类型必填 | 无 |
| TradeClient.method | &str | Rust 类型必填 | 无 |
| TradeClient.params | P | Rust 类型必填 | 无 |
| 返回示例 |
{}示例假定调用方将 T 选择为 JSON 对象;也可能返回 null,实际形状由 T 决定。
指定版本的可空调用
签名
pub async fn call_optional_versioned<T, P>(&self, method: &str, params: P, version: Option<&str>) -> Result<Option<T>, TigerError>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| method | &str | Rust 类型必填 | 无 |
| params | P | Rust 类型必填 | 无 |
| version | Option<&str> | 可选 | None(不序列化) |
| 返回示例 |
{}示例假定调用方将 T 选择为 JSON 对象;也可能返回 null,实际形状由 T 决定。
写入通用订阅帧
签名
pub fn subscribe(&self, subject: &SubjectType, symbols: Option<&str>, account: Option<&str>, market: Option<&str>) -> bool参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| subject | &SubjectType | Rust 类型必填 | 无 |
| symbols | Option<&str> | 可选 | None(不序列化) |
| account | Option<&str> | 可选 | None(不序列化) |
| market | Option<&str> | 可选 | None(不序列化) |
| 返回示例 |
无同步服务端响应。返回值仅表示帧是否写入本地通道。
写入通用退订帧
签名
pub fn unsubscribe(&self, subject: &SubjectType, symbols: Option<&str>, account: Option<&str>, market: Option<&str>) -> bool参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| subject | &SubjectType | Rust 类型必填 | 无 |
| symbols | Option<&str> | 可选 | None(不序列化) |
| account | Option<&str> | 可选 | None(不序列化) |
| market | Option<&str> | 可选 | None(不序列化) |
| 返回示例 |
无同步服务端响应。返回值仅表示帧是否写入本地通道。
推送订阅状态方法
以下方法仅维护本地状态,供查询和重连恢复使用。
签名
pub fn add_subscription(&self, subject: SubjectType, symbols: &[String])参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| subject | SubjectType | Rust 类型必填 | 无 |
| symbols | &[String] | Rust 类型必填 | 无 |
| 返回示例 |
无同步服务端响应。
删除本地行情订阅
签名
pub fn remove_subscription(&self, subject: SubjectType, symbols: Option<&[String]>)参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| subject | SubjectType | Rust 类型必填 | 无 |
| symbols | Option<&[String]> | 可选 | None(不序列化) |
| 返回示例 |
无同步服务端响应。
查询本地行情订阅
签名
pub fn get_subscriptions(&self) -> HashMap<SubjectType, Vec<String>>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| none | - | Rust 类型必填 | 无 |
| 返回示例 |
无同步服务端响应。返回主题到标的列表的本地快照。
记录本地账户订阅
签名
pub fn add_account_sub(&self, subject: SubjectType)参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| subject | SubjectType | Rust 类型必填 | 无 |
| 返回示例 |
无同步服务端响应。
删除本地账户订阅
签名
pub fn remove_account_sub(&self, subject: &SubjectType)参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| subject | &SubjectType | Rust 类型必填 | 无 |
| 返回示例 |
无同步服务端响应。
查询本地账户订阅
签名
pub fn get_account_subscriptions(&self) -> Vec<SubjectType>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| none | - | Rust 类型必填 | 无 |
| 返回示例 |
无同步服务端响应。返回本地账户主题快照。
订阅数字货币行情
签名
pub fn subscribe_cc(&self, symbols: &[&str]) -> Result<(), TigerError>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| symbols | &[&str] | Rust 类型必填 | 无 |
| 返回示例 |
无同步服务端响应。成功仅表示本地流程完成。
退订数字货币行情
签名
pub fn unsubscribe_cc(&self, symbols: Option<&[&str]>) -> Result<(), TigerError>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| symbols | Option<&[&str]> | 可选 | None(不序列化) |
| 返回示例 |
无同步服务端响应。成功仅表示本地流程完成。
订阅市场榜单
签名
pub fn subscribe_market(&self, market: &str) -> Result<(), TigerError>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| market | &str | Rust 类型必填 | 无 |
| 返回示例 |
无同步服务端响应。成功仅表示本地流程完成。
退订市场榜单
签名
pub fn unsubscribe_market(&self, market: &str) -> Result<(), TigerError>参数
| 参数 | Rust 类型 | 必填性/条件 | SDK 默认值 |
|---|---|---|---|
| market | &str | Rust 类型必填 | 无 |
| 返回示例 |
无同步服务端响应。成功仅表示本地流程完成。
Updated 4 days ago
