[−][src]Crate devbox
A collection of small build related librarires intended to be used as dev-dependencies
Install
To get started, add the following to Cargo.toml under dev-dependencies
:
[dev-dependencies]
devbox = { version = "0.1" }
Test macro
Adds parametrization capabilty to #[test]
via #[args]
attribute macro.
#[args( char_a: 'a'; char_b: 'b' ! "unexpected character"; )] #[test] fn parametrized_test_for(character:_) { assert_eq!('a', character, "unexpected character"); }
Check #[args] attribute for full example and usage specification.
Build srcipt
Small utility library for easier file manipulation and external tool invocation in Rust build sripts (build.rs) that avoids rebuilding up-to-date build artifacts.
pub fn main() { let build = Build::new(); let websrc = build.manifest_dir().dir("webapp"); let webwrk = build.out_dir().dir("webapp_build"); let webwrk_pkg = webwrk.file("package.json"); let webwrk_pkl = webwrk.file("package-lock.json"); for unit in websrc.content("*") { unit.link_from_inside(&webwrk); } let npm = Cmd::new("npm").arg("--prefix").arg(webwrk.path()); webwrk.dir("node_modules").mk_from("Install WebApp node packages", &webwrk_pkg + &webwrk_pkl, ||{ npm.clone().arg("install").run(); webwrk.dir("node_modules").touch(); }); webwrk.dir("dist").mk_from("Build WebApp using webpack", &webwrk.content("**"), || { npm.clone().arg("run").arg("build").run(); webwrk.dir("dist").touch(); }); }
Check build module for fully working example and usage specification.
Modules
build | Small utility library for writing Rust build sripts (build.rs). |
test | Small utility library for writing Rust tests. |