kitty_remote_bindings_core/
lib.rs

1use std::path::PathBuf;
2
3pub trait ToArg {
4    fn to_arg(&self) -> Vec<String>;
5}
6
7impl ToArg for String {
8    fn to_arg(&self) -> Vec<String> {
9        vec![self.clone()]
10    }
11}
12
13impl ToArg for PathBuf {
14    fn to_arg(&self) -> Vec<String> {
15        vec![self.to_string_lossy().to_string()]
16    }
17}
18
19impl<T: ToArg> ToArg for &T {
20    fn to_arg(&self) -> Vec<String> {
21        (*self).to_arg()
22    }
23}
24
25impl<T: ToArg> ToArg for Vec<T> {
26    fn to_arg(&self) -> Vec<String> {
27        self.iter().flat_map(ToArg::to_arg).collect()
28    }
29}