lightstreamer_client/
util.rs1pub fn clean_message(text: &str) -> String {
3 let mut result = String::new();
4 let mut inside_braces = false;
5
6 for part in text.split_inclusive(&['{', '}']) {
7 if part.starts_with('{') && part.ends_with('}') {
8 inside_braces = true;
10 result.push_str(part);
11 } else if inside_braces {
12 inside_braces = false;
14 result.push_str(&part);
15 } else {
16 result.push_str(&part.replace('\n', "").replace('\r', "").to_lowercase());
18 }
19 }
20
21 result
22}
23
24pub fn parse_arguments(input: &str) -> Vec<&str> {
25 let mut arguments = Vec::new();
26 let mut start = 0;
27 let mut in_brackets = 0; for (i, c) in input.chars().enumerate() {
30 match c {
31 '{' => in_brackets += 1,
32 '}' => in_brackets -= 1,
33 ',' if in_brackets == 0 => {
34 let slice = &input[start..i].trim();
36 if !slice.is_empty() {
37 arguments.push(*slice); }
39 start = i + 1;
40 }
41 _ => {}
42 }
43 }
44
45 if start < input.len() {
47 let slice = &input[start..].trim();
48 if !slice.is_empty() {
49 arguments.push(*slice); }
51 }
52
53 arguments
54}