# 🦀 aghpb.rs 📚 Rust API wrapper for the anime girls holding programming books [API](https://api.devgoldy.xyz/aghpb/v1/docs) [![Crates.io](https://img.shields.io/crates/v/aghpb?style=flat)](https://crates.io/crates/aghpb) [![docs.rs](https://img.shields.io/docsrs/aghpb?style=flat)](https://docs.rs/aghpb)

> [!Note] > > This is part of my [aghpb api](https://github.com/THEGOLDENPRO/aghpb_api) wrapper challenge where I attempt to write an api wrapper in every language possible. So yes expect spaghetti code as it will be my first time writing in these languages. Although I'm 100% open to improvements and corrections so feel free to contribute anything. > **[Other languages I've done](https://github.com/THEGOLDENPRO/aghpb_api#-api-wrappers)** ## Install ```rust cargo add aghpb ``` More install instructions at [crates.io](https://crates.io/crates/aghpb). ## Examples This is how you may retrieve a random anime girls holding programming books: ```rust use tokio::fs; use std::error::Error; #[tokio::main] async fn main() -> Result<(), Box> { let book = aghpb::random(None).await?; println!("Name: {}", book.name); println!("Category: {}", book.category); println!("Date added: {}", book.date_added); fs::write("./anime_girl.png", book.raw_bytes).await?; Ok(()) } ``` You can also retrieve specific categories of anime girls holding programming books like so: ```rust let book = aghpb::random(Some("rust".into())).await?; ```
This is how you may retrieve a list of available categories: ```rust use std::error::Error; #[tokio::main] async fn main() -> Result<(), Box> { let categories = aghpb::categories().await?; for category in categories { println!("{}", category); } Ok(()) } ```
How to search for an anime girl holding a programming book. > [!NOTE] > NEW in v1.4! ```rust use std::error::Error; use tokio::fs; #[tokio::main] async fn main() -> Result<(), Box> { let books = aghpb::search("tohru".into(), None, None).await?; let book_data = &books[0]; // I'm selecting the first book just for this example. println!("Name: {}", book_data.name); println!("Category: {}", book_data.category); println!("Commit Author: {}", book_data.commit_author); println!("Commit URL: {}", book_data.commit_url); println!("Date Added: {}", book_data.date_added); println!("Search ID: {}", book_data.search_id); let book = book_data.get_book().await?; fs::write("./anime_girl.png", book.raw_bytes).await?; Ok(()) } ``` Made using my API at 👉 https://api.devgoldy.xyz/aghpb/v1/