6个版本

0.2.1 2019年12月24日
0.2.0 2019年12月22日
0.1.3 2019年12月18日

1727编码

每月下载 31

MIT 许可证

19KB
224 代码行

AOC Helper 文档

rustc 1.40.0 crates.io 0.2.0 license

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