rust_web_server/json/array/boolean/
mod.rs

1use crate::json::array::RawUnprocessedJSONArray;
2use crate::symbol::SYMBOL;
3
4#[cfg(test)]
5mod example_list_bool_with_asserts;
6#[cfg(test)]
7mod example_list_bool;
8
9pub struct JSONArrayOfBooleans;
10impl JSONArrayOfBooleans {
11    pub fn parse_as_list_bool(json : String) -> Result<Vec<bool>, String> {
12        let items = RawUnprocessedJSONArray::split_into_vector_of_strings(json).unwrap();
13        let mut list: Vec<bool> = vec![];
14        for item in items {
15            let boxed_parse = item.parse::<bool>();
16            if boxed_parse.is_err() {
17                let message = boxed_parse.err().unwrap().to_string();
18                return Err(message);
19            }
20            let boolean: bool = boxed_parse.unwrap();
21            list.push(boolean);
22        }
23        Ok(list)
24    }
25
26    pub fn to_json_from_list_bool(items : &Vec<bool>) -> Result<String, String> {
27        let mut json_vec = vec![];
28        json_vec.push(SYMBOL.opening_square_bracket.to_string());
29        for (pos, item) in items.iter().enumerate() {
30            json_vec.push(item.to_string());
31            if pos != items.len() - 1 {
32                json_vec.push(SYMBOL.comma.to_string());
33            }
34        }
35        json_vec.push(SYMBOL.closing_square_bracket.to_string());
36
37        let result = json_vec.join(SYMBOL.empty_string);
38        Ok(result)
39    }
40
41}