Skip to content

A helper library for Google Code Jam solutions.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

FaultyRAM/gcj-helper-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gcj-helper

Travis AppVeyor Crates.io Docs.rs

gcj-helper is a Rust library for writing Google Code Jam solutions. It handles the usual boilerplate (opening files, reading/writing data, etc.), and optionally supports test case parallelisation.

Example

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),
    );
}

Usage

Via cargo new --template

For brand-new crates, the quickest way to get started is to use a Cargo template:

cargo new --template https://github.com/FaultyRAM/gcj-template-rust.git foobar

This creates a new crate named foobar that is set up to use gcj-helper. No extra work is needed; just open src/main.rs and start writing your solution.

By hand

You can also manually add gcj-helper to your crate, though doing so is slower than using cargo new --template. To do so, add this line to your [dependencies] in Cargo.toml:

gcj-helper = "0.5"

And add this line to your crate root:

extern crate gcj_helper;

Test case parallelisation

By default, gcj-helper executes each test case in a single thread, one by one. If the parallel feature is enabled, gcj-helper will attempt to execute multiple test cases simultaneously, but this relies on third-party dependencies (currently rayon), resulting in slower build times. If you'd like to enable this feature, open Cargo.toml and replace the following line:

gcj-helper = "0.5"

With this line:

gcj-helper = { version = "0.5", features = ["parallel"] }

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

A helper library for Google Code Jam solutions.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages