1use std::fmt::Display;
2
3#[derive(Clone, Debug)]
4pub struct OptionalQueryString(pub Option<String>);
5
6pub fn string_array_from_array<T>(array: &[T]) -> String
7where
8 T: Display,
9{
10 format!("[{}]", string_from_array(array))
11}
12
13pub fn string_from_array<T>(array: &[T]) -> String
14where
15 T: Display,
16{
17 let mut array_str = String::new();
18 for (i, element) in array.iter().enumerate() {
19 array_str = format!("{}{}", array_str, element);
20 if i < array.len() - 1 {
21 array_str += ", ";
22 }
23 }
24 array_str
25}
26
27pub fn string_array_from_array_str<T>(array: &[T]) -> String
28where
29 T: Display,
30{
31 let mut array_str = String::from("[");
32 for (i, element) in array.iter().enumerate() {
33 array_str = format!(r#"{}"{}""#, array_str, element);
34 if i < array.len() - 1 {
35 array_str += ", ";
36 }
37 }
38 array_str += "]";
39 array_str
40}
41
42impl ToString for OptionalQueryString {
43 fn to_string(&self) -> String {
44 self.0
45 .as_ref()
46 .map_or(String::new(), std::clone::Clone::clone)
47 }
48}