1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
use std::env; pub struct Args { pub ref_folder: String, pub cmp_folder: String, } #[derive(Debug)] pub enum Error { NoGivenRefFolder, NoGivenCompareFolder, } impl Args { pub fn new(mut args: env::Args) -> Result<Self, Error> { args.next(); let ref_folder = match args.next() { Some(arg) => arg, None => return Err(Error::NoGivenRefFolder), }; let cmp_folder = match args.next() { Some(arg) => arg, None => return Err(Error::NoGivenCompareFolder), }; Ok(Args { ref_folder, cmp_folder, }) } }