subtitle_translator_cli/
config.rs

1pub struct Config {
2    pub file_path: String,
3    pub file_name: String,
4    pub input_language: String,
5    pub output_language: String,
6}
7
8impl Config {
9    pub fn build(mut args: impl Iterator<Item = String>) -> Result<Config, &'static str> {
10        args.next(); // Skip the first argument, which is the program name
11        let file_path = match args.next() {
12            Some(arg) => arg,
13            None => return Err("No file path provided"),
14        };
15        let file_name = file_path.split('/').last().unwrap().to_string();
16        let input_language = match args.next() {
17            Some(arg) => arg,
18            None => return Err("No input language provided"),
19        };
20        let output_language = match args.next() {
21            Some(arg) => arg,
22            None => return Err("No output language provided"),
23        };
24        Ok(Config {
25            file_path,
26            file_name,
27            input_language,
28            output_language,
29        })
30    }
31}