1个不稳定版本
0.1.0 | 2021年10月9日 |
---|
2386 在 Rust模式
14KB
84 行
mic
帮助解决竞技编程问题。
此crate旨在与cargo-equip一起使用,这是一个将代码打包成单个.rs
文件的工具。
用法
参见Docs.rs上的文档。
示例
use mic::{answer, solve};
#[answer]
fn main() -> _ {
1
}
// 1 → println!("{}", 1)
#[answer(yn("Yes", "No"))]
fn main() -> _ {
true
}
// true → "Yes"
// → println!("{}", "Yes")
#[answer(tuple(" "))]
fn main() -> _ {
(42, "foo")
}
// (42, "foo") → "42 foo".to_owned()
// → println!("{}", "42 foo".to_owned())
#[answer(join("\n"))]
fn main() -> _ {
1..=3
}
// 1..=3 → "1\n2\n3".to_owned()
// → println!("{}", "1\n2\n3".to_owned())
#[answer(matrix(" "))]
fn main() -> _ {
vec![vec![1, 2], vec![3, 4]]
}
// vec![vec![1, 2], vec![3, 4]] → "1 2\n3 4".to_owned()
// → println!("{}", "1 2\n3 4".to_owned())
#[answer(join(" "), map(add(1)))]
fn main() -> _ {
vec![0, 2, 4] // 0-based graph node indices
}
// vec![0, 2, 4] → { impl Iterator } ([1, 3, 5])
// → "1 3 5".to_owned()
// → println!("{}", "1 3 5".to_owned())
#[solve(join(" "))]
fn solve() -> _ {
1..=3
}
// 1..=3 → "1 2 3".to_owned()
assert_eq!("1 2 3", solve());
许可证
根据CC0-1.0 许可。
依赖
~2MB
~43K SLoC