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
pub trait Connectable { fn get_urls(self) -> Vec<String>; } impl Connectable for String { fn get_urls(self) -> Vec<String> { vec![self] } } impl Connectable for Vec<String> { fn get_urls(self) -> Vec<String> { self } } impl Connectable for &str { fn get_urls(self) -> Vec<String> { vec![self.to_string()] } } impl Connectable for Vec<&str> { fn get_urls(self) -> Vec<String> { let mut urls = vec![]; for url in self { urls.push(url.to_string()); } urls } }