2019-07-04 19:08:57 +00:00
|
|
|
use ed_lrr::preprocess::{preprocess_files, PreprocessOpts};
|
|
|
|
use ed_lrr::route::{route, RouteOpts};
|
2019-06-05 23:15:49 +00:00
|
|
|
use humantime::format_duration;
|
|
|
|
use std::time::Instant;
|
2019-06-12 23:49:05 +00:00
|
|
|
use structopt::StructOpt;
|
|
|
|
#[derive(Debug, StructOpt)]
|
2019-06-16 23:46:24 +00:00
|
|
|
#[structopt(
|
|
|
|
name = "ed_lrr",
|
|
|
|
about = "Elite: Dangerous Long-Range Router",
|
2019-06-29 08:32:47 +00:00
|
|
|
rename_all = "snake_case"
|
2019-06-16 23:46:24 +00:00
|
|
|
)]
|
2019-07-04 19:08:57 +00:00
|
|
|
enum Opts {
|
|
|
|
/// Plots a route through multiple systems
|
|
|
|
Route(RouteOpts),
|
|
|
|
/// Preprocess EDSM Dump
|
|
|
|
Preprocess(PreprocessOpts),
|
2019-06-16 23:46:24 +00:00
|
|
|
}
|
|
|
|
|
2019-07-04 19:08:57 +00:00
|
|
|
fn main() -> std::io::Result<()> {
|
2019-06-29 08:32:47 +00:00
|
|
|
let t_start = Instant::now();
|
|
|
|
let opts = Opts::from_args();
|
2019-07-04 19:08:57 +00:00
|
|
|
let ret = match opts {
|
|
|
|
Opts::Route(opts) => route(opts),
|
|
|
|
Opts::Preprocess(opts) => preprocess_files(opts),
|
2019-06-16 23:46:24 +00:00
|
|
|
};
|
2019-06-29 08:32:47 +00:00
|
|
|
println!("Total time: {}", format_duration(t_start.elapsed()));
|
2019-07-04 19:08:57 +00:00
|
|
|
ret
|
2019-06-05 23:15:49 +00:00
|
|
|
}
|