From 022e0002e40d9286677ae59e751b4b873dce6e95 Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Fri, 19 Apr 2019 16:57:14 -0400 Subject: Use "context" to contain run details (#14) * Create "context" to contain run details * Use context in tests and benchmarks --- src/context.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/context.rs (limited to 'src/context.rs') diff --git a/src/context.rs b/src/context.rs new file mode 100644 index 000000000..32e9fab11 --- /dev/null +++ b/src/context.rs @@ -0,0 +1,30 @@ +use clap::ArgMatches; +use std::env; +use std::path::PathBuf; + +pub struct Context<'a> { + pub current_dir: PathBuf, + pub arguments: ArgMatches<'a>, +} + +impl<'a> Context<'a> { + pub fn new(arguments: ArgMatches) -> Context { + // TODO: Currently gets the physical directory. Get the logical directory. + let current_dir = env::current_dir().expect("Unable to identify current directory."); + + Context { + current_dir, + arguments, + } + } + + pub fn new_with_dir(arguments: ArgMatches, dir: T) -> Context + where + T: Into, + { + Context { + current_dir: dir.into(), + arguments, + } + } +} -- cgit v1.2.3