#definition #dictionary #urban #api-bindings

urbandictionary

UrbanDictionary API 的非官方 Rust 封装

6 个版本 (3 个破坏性更新)

0.4.0-alpha.12019 年 10 月 10 日
0.3.1 2018 年 7 月 28 日
0.3.0 2018 年 1 月 16 日
0.2.0 2017 年 8 月 2 日
0.1.1 2016 年 8 月 22 日

#1 in #urban

ISC 许可证

12KB
73

ci-badge license-badge docs-badge rust badge

urbandictionary.rs

Urbandictionary API 的非官方异步 Rust 客户端。

文档

安装

此库需要至少 Rust 1.39。

将以下依赖项添加到您的 Cargo.toml 中

urbandictionary = "0.4.0-alpha.1"

示例

检索一个单词的定义列表,并打印第一个定义的示例(如果存在的话)

extern crate futures;
extern crate hyper;
extern crate hyper_tls;
extern crate tokio_core;
extern crate urbandictionary;

use futures::Future;
use hyper::client::{Client, HttpConnector};
use hyper_tls::HttpsConnector;
use std::error::Error;
use tokio_core::reactor::Core;
use urbandictionary::HyperUrbanDictionaryRequester;

fn try_main() -> Result<(), Box<Error>> {
    let mut core = Core::new()?;
    let client = Client::configure()
        .connector(HttpsConnector::new(4, &core.handle())?)
        .build(&core.handle());

    let done = client.definitions("cat").and_then(|response| {
        if let Some(definition) = response.definitions.get(1) {
            println!("Examples: {}", definition.example);
        }

        Ok(())
    }).map_err(|_| ());

    core.run(done).expect("Error running core");

    Ok(())
}

fn main() {
    try_main().unwrap();
}

使用 reqwest,打印单词 "cat" 的定义

extern crate reqwest;
extern crate urbandictionary;

use reqwest::Client;
use std::error::Error;
use urbandictionary::ReqwestUrbanDictionaryRequester;


fn try_main() -> Result<(), Box<Error>> {
    let client = Client::new();
    let response = client.define("cat")?;

    if let Some(definition) = response {
        println!("The definition of cat is: {}", definition.definition);
    } else {
        println!("No definition found");
    }

    Ok(())
}

fn main() {
    try_main().unwrap();
}

依赖项

~5–9MB
~215K SLoC