pub type Command = Vec; pub type Parallel = bool; pub type Pattern = String; pub type Separator = char; pub struct Struct { pub Command: Command, pub Exclude: Vec, pub File: bool, pub Parallel: Parallel, pub Pattern: Pattern, pub Root: String, pub Separator: Separator, } impl Struct { pub fn Fn(Option { Separator, .. }: Option) -> Self { Self { File: Fn().get_flag("File"), Parallel: Fn().get_flag("Parallel"), Root: Fn().get_one::("Root").expect("Cannot Root.").to_owned(), Exclude: Fn() .get_one::("Exclude") .expect("Cannot Exclude.") .split(" ") .map(|Command| Command.to_string()) .collect::>(), Pattern: Fn().get_one::("Pattern").expect("Cannot Pattern.").to_owned(), Command: Fn().get_many::("Command").expect("Cannot Command").cloned().collect(), Separator, } } } use crate::{Fn::Binary::Command::Fn, Struct::Binary::Command::Struct as Option};