6 个版本

0.1.23 2024 年 8 月 1 日
0.1.22 2024 年 8 月 1 日

#2124异步

Download history 316/week @ 2024-07-27 58/week @ 2024-08-03

374 每月下载次数
shuller 中使用

MIT 许可证

8KB
52

Uller

关于

此 crate 为您提供

  • MakeLink
    • 从结构体生成 Url 的接口。
  • JsonDownload<T>
    • 使用 MakeLink 从生成的 Url 获取数据并将其转换为 <T> 结构体的接口。
  • BytesDownload
    • MakeLink 转换下载数据为 bytes 的接口。

注意:为您的项目添加 url crate。

以下信息包含来自 uller-macro crate 的示例。

示例(future - macro)

Qller(默认)

示例

use uller::prelude;
#[derive(Qller)]
#[url = "http://127.0.0.1:1234/"]
struct Test {
    #[name = "f"] // rename to "f"
    f111: String,
    #[name = "v"] // rename to "v"
    #[pos = 0]    // move it to the first position
    v222: String,
}

这将转换为:http://127.0.0.1:1234/?v={value}&f={value}

注意:位置从 0 开始,类似于数组。

示例(future - juller)

Juller(功能 - juller)

示例

use uller::prelude;
#[derive(Qller, Juller)]
#[output = "TestOut"]
#[url = "http://127.0.0.1:41112/"]
struct Test {
    f: String,
    v: String,
}

#[derive(Deserialize, Debug)]
struct TestOut {
    field: String,
}

async fn convert(st: &Test) -> TestOut {
    st.download().await.unwrap()
    // or
    st.download_verbose().await.unwrap()
}

示例(future - buller)

Buller(功能 - buller)

示例

use uller::prelude;

#[derive(Qller, Buller)]
#[url = "http://127.0.0.1:41112/"]
struct Test {
    f: String,
    v: String,
}

async fn convert(st: &Test) -> bytes::Bytes {
    st.download().await.unwrap()
    // or
    st.download_verbose().await.unwrap()
}

依赖关系

~1–12MB
~148K SLoC