#jam #boilerplate #code

gcj-helper

Google Code Jam 解决方案的辅助库

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

Apache-2.0/MIT 协议

14KB
191 行代码

gcj-helper

Travis AppVeyor Crates.io Docs.rs

gcj-helper 是一个用于编写 RustGoogle 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 许可证定义,应按上述方式双许可,不附加任何额外条款或条件。

依赖项

~0–465KB