7 个版本
0.2.0 | 2019年9月28日 |
---|---|
0.1.2 | 2019年9月28日 |
0.0.3 | 2019年9月23日 |
#2639 在 解析器实现
每月32 次下载
23KB
442 行
jsonbox.rs
⚙️ jsonbox.io 的 Rust 封装。
用法
// Declaration
use jsonbox::{Client, Error};
use serde::{Deserialize, Serialize};
// Define struct
#[derive(Serialize, Deserialize)]
pub struct Data {
pub name: String,
pub message: String,
}
fn main() -> Result<(), Error> {
// Create client with <BOX_ID>
let client = Client::new("enjoy_your_first_jsonbox_rs");
// Insert data
let data = Data {
name: "kuy".into(),
message: "Hello, Jsonbox!".into(),
};
let (record, meta) = client.create(&data)?;
println!("CREATE: data={:?}, id={} @{}", record, meta.id, meta.created_on);
Ok(())
}
创建
let data = Data {
name: "kuy".into(),
message: "Hello, Jsonbox!".into(),
};
let (record, meta) = client.create(&data)?;
println!("CREATE: data={:?}, meta={:?}", record, meta);
读取
全部(默认参数)
let all = client.read().all::<Data>()?;
println!("READ: len={}, all={:?}", all.len(), all);
指定 id
let (record, meta) = client.read().id("5d876d852a780700177c0557")?;
println!("READ: data={:?}, meta={:?}", record, meta);
指定限制
let few = client.read().limit(10).run::<Data>()?;
println!("READ: len={}, few={:?}", few.len(), few);
跳过
let rest = client.read().skip(5).run::<Data>()?;
println!("READ: len={}, rest={:?}", rest.len(), rest);
排序(升/降序)
let asc = client.read().order_by("name").run::<Data>()?;
println!("READ: len={}, asc={:?}", asc.len(), asc);
let desc = client.read().order_by("count").desc().run::<Data>()?;
println!("READ: len={}, desc={:?}", desc.len(), desc);
筛选
let filtered = client
.read()
.filter_by("name:{}", "Json Box")
.run::<Data>()?;
println!("READ: len={}, filtered={:?}", filtered.len(), filtered);
更新
let data = Data::new("kuy", "Hello, Jsonbox!");
client.update("5d876d852a780700177c0557", &data)?;
println!("UPDATE: OK");
删除
client.delete("5d876d852a780700177c0557")?;
println!("DELETE: OK");
示例
- jsonbox-todo-example
- hello
cargorun --examplehello
- basic
cargorun --examplebasic
- 错误
cargorun --example错误
许可证
MIT
作者
Yuki Kodama / @kuy
依赖项
~19MB
~427K SLoC