6个版本
0.2.1 | 2019年12月24日 |
---|---|
0.2.0 | 2019年12月22日 |
0.1.3 | 2019年12月18日 |
1727 在 编码
每月下载 31 次
19KB
224 代码行
AOC Helper 文档
AOC Helper 是一个Rust库,旨在使解决和共享AOC问题变得更加容易。它受到了 cargo-aoc 的启发。 cargo-aoc
是一个二进制文件,可以处理编译任务,而本库是一个可以导入并用于你代码中的库。这旨在使分享和调试他人的代码更加容易,也许设置起来也更为简单。
更多示例,请查看仓库中的示例目录。
用法
要开始,请将 aoc-helper
添加到你的 Cargo.toml
文件中的 dependencies
部分中
[dependencies]
aoc-helper = "0.2.1"
你还需要提供一个会话ID,以便 aoc-helper
能够下载你的输入文件。如果你在AOC网站上登录,会话ID存储在你浏览器中名为 session
的cookie中。你可以通过名为 AOC_SESSION_ID
的环境变量,通过 Helper
上的 session_id
函数,或者使用 aoc_helper.toml
文件来提供会话ID。
如果你使用 aoc_helper.toml
文件,你需要指定 config-file
功能,并在 aoc_helper.toml
中指定你的会话ID,如下所示
session-id = "82942d3671962a9f17f8f81723d45b0fcdf8b3b5bf6w3954f02101fa5de1420b6ecd30ed550133f32d6a5c00233076af"
然后,创建一个 AocDay
实例。查看其文档以获取更多信息。默认情况下,输出是彩色的。你可以通过禁用默认功能来禁用此功能。
示例
use aoc_helper::{AocDay, Puzzle};
fn main() {
// Create a new `AocDay` instance for day 1 of 2015
// Note: this is not the actual problem from day 1 of 2015
let mut day_1 = AocDay::new(2015, 1);
// Create a new `Puzzle` instance for part 2
let part_2 = Puzzle::new(
2,
|x: String| x.lines().filter(|&y| y.contains("foo")).count()
)
.with_examples(&["random\nstuff\nfoo\nbaz", "foo\nbar\ntest\ncases"]);
// Run the solver functions on the example cases
day_1.test(&part_2);
// Run the solver functions on the day's input
day_1.run(&part_2).unwrap();
}
依赖项
~4–11MB
~152K SLoC