16 个版本
0.4.0 | 2023 年 12 月 2 日 |
---|---|
0.3.7 | 2023 年 11 月 24 日 |
0.3.5 | 2023 年 10 月 7 日 |
0.3.4 | 2023 年 1 月 19 日 |
0.1.0 | 2022 年 12 月 12 日 |
#5 in #submit
21KB
388 代码行数(不含注释)
Advent of Code Data
使用 Rust 编程获取谜题输入并提交答案。
可能对懒惰的 Rustaceans 和速度黑客有用。
是的,这是 wimglenn 的 aocd
Python 包,但这是为 Rust 编写的。而且,是的,这也试图缓存从 Advent of Code 获取的所有内容,以节省他们的服务器。
示例
剧透:这个示例确实解决了一个 AoC 谜题。
use aocd::*;
// or, if you prefer: use aocd::prelude::*;
#[aocd(2022, 1)]
fn main() {
let mut elves: Vec<_> = input!()
.split("\n\n")
.map(|e| e.lines().map(|l| l.parse::<u32>().unwrap()).sum())
.collect();
elves.sort();
submit!(1, elves.last().unwrap());
submit!(2, elves.iter().rev().take(3).sum::<u32>());
}
测试
如果您在调试时想使用较小的测试输入,只需在顶部添加文件名即可。在这种情况下,input!
宏仅读取文件,而 submit!
仅打印结果而不提交给 AoC。
use aocd::*;
#[aocd(2022, 1, "test.txt")]
fn main() {
...
}
快速入门
您需要提供 AoC 会话令牌,以便此包能够获取您的个人谜题输入并能够为您提交答案。这是一个当您登录 AoC 时设置的 cookie。您可以使用浏览器检查器找到它。有关说明,请参阅 此问题。您可以使用以下任一方式将令牌提供给 aocd
# Alt 1 (this way doesn't require any environment variables to be set):
mkdir -p ~/.config/aocd
echo "your session cookie here" > ~/.config/aocd/token
# Alt 2:
export AOC_SESSION="or here"
# Alt 3:
export AOC_TOKEN="or here"
# Alt 4:
echo "or here" > some_file
export AOC_TOKEN_PATH=some_file
接下来,将此包添加到您的依赖项
cargo add aocd
在您的代码中,使用 #[aocd(year, day)]
注释您的 main 函数,然后使用宏 input!()
和 submit!(part, answer)
分别获取谜题输入和提交答案。请参阅上面的示例。
依赖项
~11–21MB
~366K SLoC