1 个不稳定版本
0.1.0 | 2020年12月2日 |
---|
#44 in #day
15KB
223 代码行
aoc-next
Advent of Code 的辅助库,受 cargo-aoc
启发。
功能
- 显示解析器和解决函数的执行时间。
- 自动下载输入
- 筛选特定日期的解决方案
- 首先将输入解析为更合适的结构,然后在解决方案中处理它
待办事项
- 基准测试?
- 改善解析器函数返回类型的泛型支持
使用方法
通用
将包作为库包含。然后声明一个静态 Aoc
结构体来 '注册' 您的解决方案。它可能看起来像这样
const AOC: Aoc = Aoc {
allow_download: true,
year: 2020,
solutions: &[
solution!{1, failable_parser!{ day1::input_generator }, solver!{ day1::solve_part1 }},
solution!{1, failable_parser!{ day1::input_generator }, solver!{ day1::solve_part2 }},
solution!{2, failable_parser!{ day2::input_generator }, solver!{ day2::solve_part1 }},
solution!{2, failable_parser!{ day2::input_generator }, solver!{ day2::solve_part2 }},
],
};
要运行您的解决方案,请将 app::aoc_main
添加到您的 main 方法中。它将负责向您的解析器提供输入并执行您的解决方案。
如果您只想查看特定日期的解决方案,只需将数字作为第一个参数传递:例如,使用 cargo run --release 2
来运行所有第 2 天的解决方案。
自动输入下载
您需要找到 AoC 的会话令牌,以便自动下载工作。幸运的是,找到令牌很容易,因为它存储在您的浏览器 cookie 中。打开浏览器的开发者工具,然后
- Firefox:'存储' 选项卡,Cookie,并复制会话 cookie 的 '值' 字段。
- Google Chrome / Chromium:'应用程序' 选项卡,Cookie,并复制会话 cookie 的 '值' 字段。
现在将它们放入项目 Cargo.toml
旁边的 .aoc_session.txt
中。
重要:请确保将 .aoc_session.txt
添加到您的 .gitignore
,这样您就不会实际提交会话令牌!
示例
有关库的使用示例,请参阅 https://github.com/liketechnik/aoc-2020 或如果您遇到任何问题,请打开一个问题。我还在 rust discord(s) (as liketechnik#8562) 上可用。
依赖关系
~3–7MB
~162K SLoC