imgurs/src/lib.rs

103 lines
2.5 KiB
Rust

//! [![github]](https://github.com/M3DZIK/imgurs)
//! [![crates-io]](https://crates.io/crates/imgurs)
//! [![docs-rs]](https://docs.rs/imgurs)
//!
//! [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=github
//! [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rust
//! [docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rs
//!
//! This crate is an unofficial implementation of the [Imgur API](https://imgur.com) in Rust.
//!
//! # Installation
//!
//! ## Requirements
//! - Rust 1.58 (earlier versions are not tested (only the latest stable version is tested!))
//! - Network connection
//!
//! ## Importing
//! The driver is available on [crates.io](https://crates.io/crates/imgurs). To use the driver in
//! your application, simply add it to your project's `Cargo.toml`.
//! ```toml
//! [dependencies]
//! imgurs = "0.11.3"
//! ```
//!
//! # Example Usage
//!
//! ## Create new ImgurClient
//! ```
//! use imgurs::ImgurClient;
//!
//! let client = ImgurClient::new("client_id");
//! ```
//!
//! ## Image Upload
//! ```no_run
//! use imgurs::ImgurClient;
//!
//! #[tokio::main]
//! async fn main() {
//! let client = ImgurClient::new("client_id");
//!
//! // From URL
//! let info = client
//! .upload_image("https://i.imgur.com/lFaGr1x.png")
//! .await
//! .unwrap();
//! println!("{:?}", info);
//!
//! // From File
//! let info = client.upload_image("path/to/file.png").await.unwrap();
//! println!("{:?}", info);
//! }
//! ```
//!
//! ## Delete Image
//! ```no_run
//! use imgurs::ImgurClient;
//!
//! #[tokio::main]
//! async fn main() {
//! let client = ImgurClient::new("client_id");
//!
//! client.delete_image("delete_hash").await.unwrap(); // delete hash
//! }
//! ```
//!
//! ## Get Image Info
//! ```no_run
//! use imgurs::ImgurClient;
//!
//! #[tokio::main]
//! async fn main() {
//! let client = ImgurClient::new("client_id");
//!
//! let info = client.image_info("lFaGr1x").await.unwrap(); // image id
//!
//! println!("{:?}", info);
//! }
//! ```
//!
//! ## Get Client RateLimit
//! ```no_run
//! use imgurs::ImgurClient;
//!
//! #[tokio::main]
//! async fn main() {
//! let client = ImgurClient::new("client_id");
//!
//! let info = client.rate_limit().await.unwrap();
//!
//! println!("{:?}", info);
//! }
//! ```
mod error;
pub use error::*;
#[cfg(feature = "imgur")]
mod imgur;
#[cfg(feature = "imgur")]
pub use imgur::*;