7 个版本
0.1.16 | 2023年5月30日 |
---|---|
0.1.15 | 2023年5月29日 |
0.1.13 | 2023年4月25日 |
在 #domain 中排名 68
每月下载量 26
30KB
762 行代码(不包括注释)
SBXCloud Rust SDK
这是 SBXCloud 的 Rust SDK。它还在开发中,尚未准备好用于生产。
所需环境变量
SBX_HOST: SBXCloud 实例的主机,默认为 https://sbxcloud.com
SBX_TOKEN: 用于身份验证的令牌(必需) SBX_APP_KEY: 用于身份验证的应用密钥(可选) SBX_DOMAIN: 数据存储的 SBXCloud 域上下文(必需),必须是一个正数
实现的功能
- 身份验证
- QueryBuilder
- load_all (QueryBuilder) 将加载查询的所有结果
- 通过 fetch 获取相关记录
代码示例
该库要求您使用异步运行时,因此您需要使用异步运行时才能使用此库。下面的示例使用 tokio。
use sbx_cloud::models::{QueryBuilder, SBXClient};
use sbx_cloud::services::load_all;
#[derive(Serialize, Deserialize, Debug, Clone)]
struct Purchase {
#[serde(rename(serialize = "_KET", deserialize = "_KEY"))]
key: String,
consecutive: u32,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
// use the default SBXClient
let sbx = SBXClient::default();
// Search for for all the items on the purchase table
let q = QueryBuilder::new("purchase", sbx.domain)
// fetch the associated customer
.fetch(vec![String::from("customer")])
// where the packing date of the order is equal to a given date
.and_equals("packing_date", date)
// and the checkout is not null
.and_is_not_null("checkout")
// compile the query
.build();
// perform the query and load all the results
match load_all::<Purchase>(&sbx, &q).await {
Ok((purchases, fetch)) => {
println!("Found {} purchases", purchases.len());
// print out the purchases
for purchase in purchases.iter() {
println!("Purchase: {}", purchase.key);
}
println!("Found {} fetches", fetch.len());
Ok(())
}
Err(e) => {
println!("Error: {}", e);
Err(e)
}
}
}
依赖项
~4–16MB
~227K SLoC