5 个版本 (有破坏性更新)
使用旧 Rust 2015
0.5.0 | 2017年4月6日 |
---|---|
0.4.0 | 2017年3月28日 |
0.3.0 | 2017年3月27日 |
0.2.0 | 2017年3月27日 |
0.1.1 | 2017年3月26日 |
在 #jam 中排名 7
14KB
191 行代码
gcj-helper
gcj-helper
是一个用于编写 Rust 的 Google Code Jam 解决方案的库。它处理通常的样板代码(打开文件、读取/写入数据等),并且可选支持测试用例并行化。
示例
extern crate gcj_helper;
use gcj_helper::TestEngine;
fn main() {
TestEngine::new("./foo.in", "./foo.out").run(
|input| input.read_next_line().to_owned(),
|data| format!(" {}\n", data),
);
}
用法
通过 cargo new --template
对于全新的 crate,最快的方式是使用 Cargo 模板
cargo new --template https://github.com/FaultyRAM/gcj-template-rust.git foobar
这会创建一个名为 foobar
的新 crate,并设置好以使用 gcj-helper
。无需额外工作;只需打开 src/main.rs
并开始编写您的解决方案。
手动添加
您也可以手动将 gcj-helper
添加到您的 crate 中,尽管这样做比使用 cargo new --template
更慢。要做到这一点,请将以下行添加到您的 [dependencies]
中的 Cargo.toml
gcj-helper = "0.5"
并将此行添加到 crate 根目录下
extern crate gcj_helper;
测试用例并行化
默认情况下,gcj-helper
在单个线程中逐个执行每个测试用例。如果启用 parallel
特性,gcj-helper
将尝试同时执行多个测试用例,但这依赖于第三方依赖项(目前是 rayon
),从而导致构建时间变长。如果您想启用此功能,请打开 Cargo.toml
并替换以下行
gcj-helper = "0.5"
为以下行
gcj-helper = { version = "0.5", features = ["parallel"] }
许可证
根据您的选择,许可协议为以下之一
- Apache 许可证2.0版,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您有意提交以包含在作品中的任何贡献,根据 Apache-2.0 许可证定义,应按上述方式双许可,不附加任何额外条款或条件。
依赖项
~0–465KB