aragog/query/
utils.rs

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}