()
| 488 | } |
| 489 | |
| 490 | fn main() { |
| 491 | // Parse command line args |
| 492 | let args: Vec<String> = env::args().collect(); |
| 493 | let (file_path, schema_name): (&str, &str); |
| 494 | match parse_args(&args) { |
| 495 | Err(err) => { |
| 496 | println!("ERROR:\n\n{}", err); |
| 497 | process::exit(1); |
| 498 | } |
| 499 | Ok(res) => { |
| 500 | (file_path, schema_name) = res; |
| 501 | } |
| 502 | } |
| 503 | |
| 504 | // Get relevant schema |
| 505 | let schema_result = get_schema(schema_name); |
| 506 | let cols: &[DataCol]; |
| 507 | match schema_result { |
| 508 | Err(err) => { |
| 509 | println!("ERROR:\n\n{}", err); |
| 510 | process::exit(1); |
| 511 | } |
| 512 | Ok(schema) => { |
| 513 | cols = schema; |
| 514 | } |
| 515 | } |
| 516 | |
| 517 | // Validate specified csv based on schema |
| 518 | if let Err(err) = validate_csv(cols, file_path) { |
| 519 | println!("ERROR:\n\n{}", err); |
| 520 | process::exit(1); |
| 521 | } |
| 522 | } |
| 523 | |
| 524 | fn parse_args(args: &[String]) -> Result<(&str, &str), Box<dyn Error>> { |
| 525 | if args.len() != 3 { |
nothing calls this directly
no test coverage detected