7 个版本

0.2.0 2019年9月28日
0.1.2 2019年9月28日
0.0.3 2019年9月23日

#2639解析器实现

每月32 次下载

MIT 许可证

23KB
442

jsonbox.rs

crates.io docs.rs build

⚙️ 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");

示例

许可证

MIT

作者

Yuki Kodama / @kuy

依赖项

~19MB
~427K SLoC