8 stable releases
| 3.0.1 | Aug 19, 2025 |
|---|---|
| 3.0.0 | Jul 30, 2025 |
| 2.1.0 | Jul 30, 2025 |
| 1.1.0 | Jul 31, 2024 |
#472 in Web programming
31KB
425 lines
a simple Advent of Code API written in Rust - also checkout the C# version
Documentation
Add Crate
cargo add aoc_api
use aoc_api::Session;
Static functions
All of the blow mentioned functions are also available as static functions, not bound to the Session struct. These can be used for easier access (not having to initialize a Session struct) in your application. The Session struct just acts as a wrapper around the static functions, which do not differ in any way to the Session struct functions.
Session initialization
let client = Session::new("session cookie": String, year: u16, day: u8); // Initializes a new Session instance
let client = Session::new("session cookie": String, input: String, pattern: Regex); // Initializes a new Session instance
![]()
The Regex overload needs to have a regex group named "year" and a group named "day".
How to name Regex groups
How to obtain session cookie
Features
Get input
let input_text: Result<String, Box<dyn Error>> = client.get_input_text().await; // Retrieves the input text of the AoC puzzle
let input_lines: Result<Vec<String>, Box<dyn Error>> = client.get_input_lines().await; // Retrieves the input lines of the AoC puzzle
Get sample input
let sample_input_text: Result<String, Box<dyn Error>> = client.get_sample_input_text(nth: u8).await; // Retrieves the nth sample input text of the AoC puzzle
let sample_input_lines: Result<Vec<String>, Box<dyn Error>> = client.get_sample_input_lines(nth: u8).await; // Retrieves the nth sample input lines of the AoC puzzle
Get achieved stars
let achieved_stars: Result<HashMap<u16, u8>, Box<dyn Error>> = client.get_all_stars().await; // Retrieves each year's number of stars earned (key: year, value: stars)
Submit answer
let response: Result<bool, SubmitAnswerError> = client.submit_answer_explicit_error(part: u8, answer: &str).await; // Submits an answer to part 1 or 2 of the AoC puzzle. Returns a boolean whether the answer is correct
credits to:
Max - markdown info icons
> Monday Morning Haskell - documentation on how to obtaining session cookie
> Developer.Mozilla - documentation on how to name Regex groups
Dependencies
~8–23MB
~281K SLoC