discord-bots-org 0.1.0

Bindings for the discordbots.org API.
[![travis-badge][]][travis] [![license-badge][]][license] [![docs-badge][]][docs] [![rust badge]][rust link]

An unofficial Rust library acting as a wrapper around the [Discord Bot List]
API, offering implementations for both sync and async reqwest (v0.9).

### Compile features

- **reqwest-sync-support**: Compliles with sync `reqwest` support (*default*)
- **reqwest-async-support**: Compiles with async `reqwest` support

Note that `reqwest-async-support` requires nightly for the unstable
`core::future` API.

### Installation

This library requires at least Rust 1.31.0.

Add the following to your `Cargo.toml` file:

```toml
[dependencies]
discord-bots-org = "0.1"
```

To enable both async `reqwest-async` and `reqwest-sync` support:

```toml
[dependencies.discord-bots-org]
version = "0.1"
features = ["reqwest-async-support", "reqwest-sync-support"]
```

To enable `reqwest-async-support` but not `reqwest-sync-support`:

```toml
[dependencies.discord-bots-org]
version = "0.1"
default-features = false
features = ["reqwest-async-support"]
```

### Examples

Using reqwest synchronously, request a bot by ID:

```rust
extern crate discord_bot_list;
extern crate reqwest;

use discord_bot_list::ReqwestSyncClient as ApiClient;
use reqwest::Client as ReqwestClient;
use std::{
    error::Error,
    sync::Arc,
};

fn main() -> Result<(), Box<Error>> {
    // Create the Reqwest Client.
    let reqwest_client = Arc::new(ReqwestClient::new());

    // Create the API Client.
    let client = ApiClient::new(Arc::clone(&reqwest_client));

    // Request the bot information.
    let bot = client.get_bot(270_198_738_570_444_801)?;

    println!("The bot's name is: {}", bot.username);

    Ok(())
}
```

Examples are sparse for asynchronous reqwest. It is assumed that if you're using
unstable asynchronous Rust APIs that you're already proficient in them.

For more examples, refer to the [examples] folder.

### License

ISC. View the full license [here][license].

[LICENSE.md]: https://github.com/dabbotorg/discord-bots-org.rs/blob/master/LICENSE.md
[Discord Bot List]: https://discordbots.org
[crates.io]: https://crates.io/crates/discord-bots-org
[docs]: https://docs.rs/discord-bots-org
[docs-badge]: https://img.shields.io/badge/docs-online-2020ff.svg?style=flat-square
[examples]: https://github.com/dabbotorg/discord-bots-org.rs/tree/master/examples
[license]: https://github.com/dabbotorg/discord-bots-org.rs/blob/master/LICENSE.md
[license-badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=flat-square
[rust badge]: https://img.shields.io/badge/rust-1.31.0+-93450a.svg?style=flat-square
[rust link]: https://blog.rust-lang.org/2018/12/06/Rust-1.31-and-rust-2018.html
[travis]: https://travis-ci.org/dabbotorg/discord-bots-org.rs
[travis-badge]: https://img.shields.io/travis/dabbotorg/discord-bots-org.rs.svg?style=flat-square