客户端与底层工具方法

这些方法用于构造客户端、管理 Token、执行底层请求或维护推送订阅状态。业务调用应优先使用具名 API;call_* 要求调用方自行保证方法名、版本、参数和目标类型匹配。

从配置构造客户端

签名

pub fn from_config(config: ClientConfig) -> Self

参数

参数Rust 类型必填性/条件SDK 默认值
QuoteClient.configClientConfigRust 类型必填
TradeClient.configClientConfigRust 类型必填
返回示例

无同步服务端响应。返回构造完成的客户端。

显式构造客户端

签名

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_clientHttpClientRust 类型必填
TradeClient.http_clientHttpClientRust 类型必填
TradeClient.accountimpl Into<String>Rust 类型必填
PushClient.configClientConfigRust 类型必填
PushClient.optionsOption<PushClientOptions>可选None(不序列化)
返回示例

无同步服务端响应。返回构造完成的客户端。

构造机构交易客户端

签名

pub fn with_secret_key(http_client: HttpClient, account: impl Into<String>, secret_key: impl Into<String>) -> Self

参数

参数Rust 类型必填性/条件SDK 默认值
http_clientHttpClientRust 类型必填
accountimpl Into<String>Rust 类型必填
secret_keyimpl Into<String>Rust 类型必填
返回示例

无同步服务端响应。返回带机构交易密钥的客户端。

查询新 Token

签名

pub async fn query_token(&self) -> Result<String, TigerError>

参数

参数Rust 类型必填性/条件SDK 默认值
none-Rust 类型必填
返回示例
"REDACTED_TOKEN"

请求频率

基础限流为 10 次/分钟query_tokenrefresh_token 均使用 user_token_refresh,共享此额度。

刷新 Token

签名

pub async fn refresh_token(&self, token_manager: Option<&crate::config::TokenManager>) -> Result<(), TigerError>

参数

参数Rust 类型必填性/条件SDK 默认值
QuoteClient.token_managerOption<&crate::config::TokenManager>可选None(不序列化)
TradeClient.token_managerOption<&crate::config::TokenManager>可选None(不序列化)
返回示例
null

请求频率

基础限流为 10 次/分钟query_tokenrefresh_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_secsi64Rust 类型必填
QuoteClient.check_interval_secsu64Rust 类型必填
QuoteClient.token_writerOption<Box<dyn Fn(String) + Send + Sync + 'static>>可选None(不序列化)
TradeClient.refresh_duration_secsi64Rust 类型必填
TradeClient.check_interval_secsu64Rust 类型必填
TradeClient.token_writerOption<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&strRust 类型必填
paramsPRust 类型必填
返回示例
{}

示例假定调用方将 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&strRust 类型必填
paramsPRust 类型必填
versionOption<&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&strRust 类型必填
QuoteClient.paramsPRust 类型必填
TradeClient.method&strRust 类型必填
TradeClient.paramsPRust 类型必填
返回示例
[]

统一列表或单对象响应

签名

pub async fn call_into_list_or_object<T, P>(&self, method: &str, params: P) -> Result<Vec<T>, TigerError>

参数

参数Rust 类型必填性/条件SDK 默认值
method&strRust 类型必填
paramsPRust 类型必填
返回示例
[]

底层可空调用

签名

pub async fn call_optional<T, P>(&self, method: &str, params: P) -> Result<Option<T>, TigerError>

参数

参数Rust 类型必填性/条件SDK 默认值
QuoteClient.method&strRust 类型必填
QuoteClient.paramsPRust 类型必填
TradeClient.method&strRust 类型必填
TradeClient.paramsPRust 类型必填
返回示例
{}

示例假定调用方将 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&strRust 类型必填
paramsPRust 类型必填
versionOption<&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&SubjectTypeRust 类型必填
symbolsOption<&str>可选None(不序列化)
accountOption<&str>可选None(不序列化)
marketOption<&str>可选None(不序列化)
返回示例

无同步服务端响应。返回值仅表示帧是否写入本地通道。

写入通用退订帧

签名

pub fn unsubscribe(&self, subject: &SubjectType, symbols: Option<&str>, account: Option<&str>, market: Option<&str>) -> bool

参数

参数Rust 类型必填性/条件SDK 默认值
subject&SubjectTypeRust 类型必填
symbolsOption<&str>可选None(不序列化)
accountOption<&str>可选None(不序列化)
marketOption<&str>可选None(不序列化)
返回示例

无同步服务端响应。返回值仅表示帧是否写入本地通道。

推送订阅状态方法

以下方法仅维护本地状态,供查询和重连恢复使用。

签名

pub fn add_subscription(&self, subject: SubjectType, symbols: &[String])

参数

参数Rust 类型必填性/条件SDK 默认值
subjectSubjectTypeRust 类型必填
symbols&[String]Rust 类型必填
返回示例

无同步服务端响应。

删除本地行情订阅

签名

pub fn remove_subscription(&self, subject: SubjectType, symbols: Option<&[String]>)

参数

参数Rust 类型必填性/条件SDK 默认值
subjectSubjectTypeRust 类型必填
symbolsOption<&[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 默认值
subjectSubjectTypeRust 类型必填
返回示例

无同步服务端响应。

删除本地账户订阅

签名

pub fn remove_account_sub(&self, subject: &SubjectType)

参数

参数Rust 类型必填性/条件SDK 默认值
subject&SubjectTypeRust 类型必填
返回示例

无同步服务端响应。

查询本地账户订阅

签名

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 默认值
symbolsOption<&[&str]>可选None(不序列化)
返回示例

无同步服务端响应。成功仅表示本地流程完成。

订阅市场榜单

签名

pub fn subscribe_market(&self, market: &str) -> Result<(), TigerError>

参数

参数Rust 类型必填性/条件SDK 默认值
market&strRust 类型必填
返回示例

无同步服务端响应。成功仅表示本地流程完成。

退订市场榜单

签名

pub fn unsubscribe_market(&self, market: &str) -> Result<(), TigerError>

参数

参数Rust 类型必填性/条件SDK 默认值
market&strRust 类型必填
返回示例

无同步服务端响应。成功仅表示本地流程完成。


Did this page help you?