6个版本 (3个重大更新)
0.3.0 | 2023年12月3日 |
---|---|
0.2.0 | 2023年12月2日 |
0.1.0 | 2023年12月2日 |
0.0.3 | 2018年12月2日 |
#12 in #advent
每月32次下载
11KB
204 行
Adventurous
Adventurous 是一个配套crate,帮助您解决 Advent of Code 的谜题。
安装
[dependencies]
adventurous = "0.3.0"
示例
解决谜题
use adventurous::Input;
use anyhow::Result;
#[adventurous::part_one]
fn part_one(input: &Input) -> Result<usize> {
Ok(input
.traverse(|line| {
// Do something with the line...
line.parse::<usize>()
})?
.sum())
}
#[adventurous::part_two]
fn part_two(_input: &Input) -> Result<usize> {
todo!()
}
fn main() -> Result<()> {
adventurous::run("input.txt", part_one, part_two)
}
回归测试
一旦解决了某个谜题,您可以使用 #[part_one]
和 #[part_two]
属性提供每个部分的正确答案。
在 tests
模块中调用 test_solutions!()
将生成回归测试,确保您的求解器输出的结果与正确答案匹配。
use adventurous::Input;
use anyhow::Result;
#[adventurous::part_one(answer = "73")]
fn part_one(input: &Input) -> Result<usize> {
Ok(input
.traverse(|line| {
// Do something with the line...
line.parse::<usize>()
})?
.sum())
}
#[cfg(test)]
mod tests {
use super::*;
adventurous::test_solutions!();
}
依赖
~0.6–1.1MB
~22K SLoC