1个稳定版本
1.0.0 | 2023年1月24日 |
---|
#1324 in 异步
48KB
799 行
Otdb-rs
用Rust编写的Open Trivia Database包装器。
概述
这个crate旨在成为一个功能全面、简单易用的包装器。
基本示例
use otdb::prelude::{Client, Category, Difficulty};
// Let's try getting some music easy questions.
#[tokio::main]
async fn main() {
let client = Client::new();
let mut request = client.trivia();
request.category(Category::Music)
.difficulty(Difficulty::Easy);
// Unwrapping is not a good idea, errors should be handled properly!
let response = request.send().await.unwrap();
println!("{:?}", response.results);
}
在阻塞上下文中的使用
这个crate还提供了一个阻塞客户端,可以在无法使用异步的情况下使用。要使用该客户端,必须在您的Cargo.toml
中启用blocking
功能,然后可以在blocking
模块中访问该客户端。
让我们用上面的代码替换异步客户端
use otdb::prelude::{Category, Difficulty};
use otdb::blocking::Client;
// Let's try getting some music easy questions.
fn main() {
let client = Client::new();
let mut request = client.trivia();
request.category(Category::Music)
.difficulty(Difficulty::Easy);
// Unwrapping is not a good idea, errors should be handled properly!
let response = request.send().unwrap();
println!("{:?}", response.results);
}
正如我们所看到的,我们只需要移除async/await语法,我们就可以正常使用了!
异步客户端和阻塞客户端之间的唯一区别是,在使用阻塞客户端时,您不需要在请求中对发送方法使用.await
,其他一切都是一样的,因此切换客户端非常简单!
依赖关系
~6–17MB
~262K SLoC