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
32
33
34
use heapless::{String, Vec};
use crate::{MaxCommandLen, MaxResponseLines};
pub fn split_parameterized_resp(
response_lines: &mut Vec<String<MaxCommandLen>, MaxResponseLines>,
) -> Vec<Vec<&str, MaxResponseLines>, MaxResponseLines> {
response_lines.reverse();
response_lines
.iter()
.map(|response_line| {
let mut v: Vec<&str, MaxResponseLines> = response_line
.rsplit(|c: char| c == ':' || c == ',')
.collect();
if v.len() > 1 {
v.pop();
v.reverse();
}
v
})
.collect()
}
pub fn split_parameterized_unsolicited(response_line: &str) -> (&str, Vec<&str, MaxResponseLines>) {
let mut parameters: Vec<&str, MaxResponseLines> = response_line
.rsplit(|c: char| c == ':' || c == ',')
.collect();
let cmd = parameters.pop().unwrap();
parameters.reverse();
(cmd, parameters)
}