htx-rs 0.1.1

火币 HTX 现货交易 Rust SDK,支持下单、撤单、查单等主要接口,签名算法兼容官方。
Documentation
//! 兼容 Python UrlParamsBuilder 的参数构造工具
use std::collections::BTreeMap;

#[derive(Debug, Default, Clone)]
pub struct UrlParamsBuilder {
    pub param_map: BTreeMap<String, String>,
}

impl UrlParamsBuilder {
    pub fn new() -> Self {
        Self { param_map: BTreeMap::new() }
    }
    pub fn put_url(&mut self, name: &str, value: &str) {
        self.param_map.insert(name.to_string(), value.to_string());
    }
    pub fn build_query_string(&self) -> String {
        if self.param_map.is_empty() {
            String::new()
        } else {
            let mut kvs: Vec<_> = self.param_map.iter().collect();
            kvs.sort_by(|a, b| a.0.cmp(b.0));
            kvs.iter().map(|(k, v)| format!("{}={}", k, v)).collect::<Vec<_>>().join("&")
        }
    }
}