1use crate::lowlevel;
9use crate::highlevel;
10use crate::serde::DeserializeErrorCause;
11use crate::translate_util::*;
12use num_traits::FromPrimitive;
13
14pub fn raise_command(lowlevel: &lowlevel::Command) -> Result<highlevel::Command, DeserializeErrorCause> {
15 match lowlevel {
16 lowlevel::Command::Execute { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
17 name == "TESTEX"
18 && delimiter == &None
19 => {
20 Ok(highlevel::Command::Testex {
21 })
22 },
23 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
24 name == "TESTEXEXT"
25 && delimiter == &None
26 => {
27 Ok(highlevel::Command::Testexext {
28 })
29 },
30 lowlevel::Command::Execute { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
31 name == "TESTNEX"
32 && delimiter == &None
33 => {
34 Ok(highlevel::Command::TestCommand {
35 })
36 },
37 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
38 name == "TESTEXEXTFI"
39 && delimiter == &Some(String::from("="))
40 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
41 => {
42 let arg_vec = extract_vec_from_args(&arguments)?;
43 let field_option = arg_vec.get(0);
44 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
45 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
46 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
47 Ok(highlevel::Command::Testexextfi {
48 field,
49 })
50 },
51 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
52 name == "TESTEXEXTFIC"
53 && delimiter == &Some(String::from("="))
54 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
55 => {
56 let arg_vec = extract_vec_from_args(&arguments)?;
57 let field_option = arg_vec.get(0);
58 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
59 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
60 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
61 Ok(highlevel::Command::Testexextfic {
62 field,
63 })
64 },
65 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
66 name == "TESTNSD"
67 && delimiter == &Some(String::from(">"))
68 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
69 => {
70 let arg_vec = extract_vec_from_args(&arguments)?;
71 let field_option = arg_vec.get(0);
72 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
73 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
74 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
75 Ok(highlevel::Command::Testnsd {
76 field,
77 })
78 },
79 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
80 name == "TESTNST"
81 && delimiter == &Some(String::from("="))
82 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
83 => {
84 let arg_vec = extract_vec_from_args(&arguments)?;
85 let field_option = arg_vec.get(0);
86 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
87 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
88 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
89 Ok(highlevel::Command::Testnst {
90 field,
91 })
92 },
93 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
94 name == "TESTNSDNST"
95 && delimiter == &Some(String::from(">"))
96 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
97 => {
98 let arg_vec = extract_vec_from_args(&arguments)?;
99 let field_option = arg_vec.get(0);
100 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
101 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
102 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
103 Ok(highlevel::Command::Testnsdnst {
104 field,
105 })
106 },
107 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
108 name == "TESTNOD"
109 && delimiter == &None
110 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
111 => {
112 let arg_vec = extract_vec_from_args(&arguments)?;
113 let field_option = arg_vec.get(0);
114 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
115 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
116 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
117 Ok(highlevel::Command::Testnod {
118 field,
119 })
120 },
121 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
122 name == "TESTEXEXTFS"
123 && delimiter == &Some(String::from("="))
124 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
125 => {
126 let arg_vec = extract_vec_from_args(&arguments)?;
127 let field_option = arg_vec.get(0);
128 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
129 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
130 let field = field_option_unwrapped_primitive.clone();
131 Ok(highlevel::Command::Testexextfs {
132 field,
133 })
134 },
135 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
136 name == "TESTEXEXTFSI"
137 && delimiter == &Some(String::from("="))
138 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
139 => {
140 let arg_vec = extract_vec_from_args(&arguments)?;
141 let field1_option = arg_vec.get(0);
142 let field1_option_unwrapped = field1_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
143 let field1_option_unwrapped_primitive = extract_primitive_from_field(field1_option_unwrapped, &arguments)?;
144 let field1 = field1_option_unwrapped_primitive.clone();
145 let field2_option = arg_vec.get(1);
146 let field2_option_unwrapped = field2_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
147 let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
148 let field2 = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
149 Ok(highlevel::Command::Testexextfsi {
150 field1,
151 field2,
152 })
153 },
154 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
155 name == "TESTEXEXTFSIC"
156 && delimiter == &Some(String::from("="))
157 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
158 => {
159 let arg_vec = extract_vec_from_args(&arguments)?;
160 let field1_option = arg_vec.get(0);
161 let field1_option_unwrapped = field1_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
162 let field1_option_unwrapped_primitive = extract_primitive_from_field(field1_option_unwrapped, &arguments)?;
163 let field1 = field1_option_unwrapped_primitive.clone();
164 let field2_option = arg_vec.get(1);
165 let field2_option_unwrapped = field2_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
166 let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
167 let field2 = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
168 Ok(highlevel::Command::Testexextfsic {
169 field1,
170 field2,
171 })
172 },
173 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
174 name == "TESTIO"
175 && delimiter == &Some(String::from("="))
176 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
177 => {
178 let arg_vec = extract_vec_from_args(&arguments)?;
179 let field1_option = arg_vec.get(0);
180 let field1_option_unwrapped = field1_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
181 let field1_option_unwrapped_primitive = extract_primitive_from_field(field1_option_unwrapped, &arguments)?;
182 let field1 = extract_int_from_primitive(field1_option_unwrapped_primitive, &arguments)?;
183 let field2_option = arg_vec.get(1);
184 let field2 = match field2_option {
185 Some(field2_option_unwrapped) if !field2_option_unwrapped.is_empty() => {
186 let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
187 let field2_unwrapped = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
188 Some(field2_unwrapped)
189 }
190 _ => None,
191 };
192 Ok(highlevel::Command::Testio {
193 field1,
194 field2,
195 })
196 },
197 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
198 name == "TESTL"
199 && delimiter == &Some(String::from("="))
200 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
201 => {
202 let arg_vec = extract_vec_from_args(&arguments)?;
203 let mut field = Vec::new();
204 for field_element_raw in arg_vec[0..].into_iter() {
205 let field_element_option = if field_element_raw.is_empty() { None } else { Some(field_element_raw) };
206 let field_element_option_unwrapped = field_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
207 let field_element_option_unwrapped_primitive = extract_primitive_from_field(field_element_option_unwrapped, &arguments)?;
208 let field_element = extract_int_from_primitive(field_element_option_unwrapped_primitive, &arguments)?;
209 field.push(field_element);
210 }
211 Ok(highlevel::Command::Testl {
212 field,
213 })
214 },
215 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
216 name == "TESTOL"
217 && delimiter == &Some(String::from("="))
218 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
219 => {
220 let arg_vec = extract_vec_from_args(&arguments)?;
221 let mut field = Vec::new();
222 for field_element_raw in arg_vec[0..].into_iter() {
223 let field_element_option = if field_element_raw.is_empty() { None } else { Some(field_element_raw) };
224 let field_element = match field_element_option {
225 Some(field_element_option_unwrapped) if !field_element_option_unwrapped.is_empty() => {
226 let field_element_option_unwrapped_primitive = extract_primitive_from_field(field_element_option_unwrapped, &arguments)?;
227 let field_element_unwrapped = extract_int_from_primitive(field_element_option_unwrapped_primitive, &arguments)?;
228 Some(field_element_unwrapped)
229 }
230 _ => None,
231 };
232 field.push(field_element);
233 }
234 Ok(highlevel::Command::Testol {
235 field,
236 })
237 },
238 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
239 name == "TESTM"
240 && delimiter == &Some(String::from("="))
241 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
242 => {
243 let arg_vec = extract_vec_from_args(&arguments)?;
244 let mut field = std::collections::HashMap::new();
245 for field_element in arg_vec[0..].into_iter() {
246 let field_element_primitive = extract_key_from_field(field_element, &arguments)?;
247 let field_key = extract_int_from_primitive(field_element_primitive, &arguments)?;
248 let field_element_primitive = extract_value_from_field(field_element, &arguments)?;
249 let field_value = field_element_primitive.clone();
250 let _ = field.insert(field_key, field_value);
251 }
252 Ok(highlevel::Command::Testm {
253 field,
254 })
255 },
256 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
257 name == "TESTP"
258 && delimiter == &Some(String::from("="))
259 && matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
260 => {
261 let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
262 let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
263 let field_option = arg_vec.get(0);
264 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
265 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
266 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
267 Ok(highlevel::Command::Testp {
268 field,
269 })
270 },
271 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
272 name == "TESTPP"
273 && delimiter == &Some(String::from("="))
274 && matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
275 => {
276 let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
277 let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
278 let field1_option = arg_vec.get(0);
279 let field1_option_unwrapped = field1_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
280 let field1_option_unwrapped_primitive = extract_primitive_from_field(field1_option_unwrapped, &arguments)?;
281 let field1 = extract_int_from_primitive(field1_option_unwrapped_primitive, &arguments)?;
282 let arg_vec = arg_vec_vec.get(1).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
283 let field2_option = arg_vec.get(0);
284 let field2_option_unwrapped = field2_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
285 let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
286 let field2 = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
287 let field3_option = arg_vec.get(1);
288 let field3_option_unwrapped = field3_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
289 let field3_option_unwrapped_primitive = extract_primitive_from_field(field3_option_unwrapped, &arguments)?;
290 let field3 = field3_option_unwrapped_primitive.clone();
291 Ok(highlevel::Command::Testpp {
292 field1,
293 field2,
294 field3,
295 })
296 },
297 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
298 name == "TESTPMPIL"
299 && delimiter == &Some(String::from("="))
300 && matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
301 => {
302 let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
303 let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
304 let mut field1 = std::collections::HashMap::new();
305 for field1_element in arg_vec[0..].into_iter() {
306 let field1_element_primitive = extract_key_from_field(field1_element, &arguments)?;
307 let field1_key = extract_int_from_primitive(field1_element_primitive, &arguments)?;
308 let field1_element_primitive = extract_value_from_field(field1_element, &arguments)?;
309 let field1_value = field1_element_primitive.clone();
310 let _ = field1.insert(field1_key, field1_value);
311 }
312 let arg_vec = arg_vec_vec.get(1).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
313 let field2_option = arg_vec.get(0);
314 let field2_option_unwrapped = field2_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
315 let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
316 let field2 = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
317 let mut field3 = Vec::new();
318 for field3_element_raw in arg_vec[1..].into_iter() {
319 let field3_element_option = if field3_element_raw.is_empty() { None } else { Some(field3_element_raw) };
320 let field3_element_option_unwrapped = field3_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
321 let field3_element_option_unwrapped_primitive = extract_primitive_from_field(field3_element_option_unwrapped, &arguments)?;
322 let field3_element = extract_int_from_primitive(field3_element_option_unwrapped_primitive, &arguments)?;
323 field3.push(field3_element);
324 }
325 Ok(highlevel::Command::Testpmpil {
326 field1,
327 field2,
328 field3,
329 })
330 },
331 lowlevel::Command::Read { name, is_extension: false, ..} if
332 name == "TESTR"
333 => {
334 Ok(highlevel::Command::TestrRead {})
335 },
336 lowlevel::Command::Read { name, is_extension: true, ..} if
337 name == "TESTREX"
338 => {
339 Ok(highlevel::Command::TestrexRead {})
340 },
341 lowlevel::Command::Test { name, is_extension: false, ..} if
342 name == "TESTT"
343 => {
344 Ok(highlevel::Command::TesttTest {})
345 },
346 lowlevel::Command::Test { name, is_extension: true, ..} if
347 name == "TESTTEX"
348 => {
349 Ok(highlevel::Command::TesttexTest {})
350 },
351 lowlevel::Command::Execute { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
352 name == "TESTENUM"
353 && delimiter == &Some(String::from("="))
354 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
355 => {
356 let arg_vec = extract_vec_from_args(&arguments)?;
357 let field_option = arg_vec.get(0);
358 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
359 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
360 let field_option_unwrapped_int = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
361 let field = super::types::TestOneVariantComma::from_i64(field_option_unwrapped_int).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
362 Ok(highlevel::Command::Testenum {
363 field,
364 })
365 },
366 lowlevel::Command::Execute { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
367 name == "TESTBOOL"
368 && delimiter == &Some(String::from("="))
369 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
370 => {
371 let arg_vec = extract_vec_from_args(&arguments)?;
372 let field_option = arg_vec.get(0);
373 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
374 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
375 let field_option_unwrapped_int = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
376 let field = field_option_unwrapped_int != 0;
377 Ok(highlevel::Command::Testbool {
378 field,
379 })
380 },
381 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
382 name == "TESTOTHERFILE"
383 && delimiter == &None
384 => {
385 Ok(highlevel::Command::Testotherfile {
386 })
387 },
388 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
389 name == "BRSF"
390 && delimiter == &Some(String::from("="))
391 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
392 => {
393 let arg_vec = extract_vec_from_args(&arguments)?;
394 let features_option = arg_vec.get(0);
395 let features_option_unwrapped = features_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
396 let features_option_unwrapped_primitive = extract_primitive_from_field(features_option_unwrapped, &arguments)?;
397 let features = extract_int_from_primitive(features_option_unwrapped_primitive, &arguments)?;
398 Ok(highlevel::Command::Brsf {
399 features,
400 })
401 },
402 lowlevel::Command::Test { name, is_extension: true, ..} if
403 name == "CIND"
404 => {
405 Ok(highlevel::Command::CindTest {})
406 },
407 lowlevel::Command::Read { name, is_extension: true, ..} if
408 name == "CIND"
409 => {
410 Ok(highlevel::Command::CindRead {})
411 },
412 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
413 name == "CLCC"
414 && delimiter == &None
415 => {
416 Ok(highlevel::Command::Clcc {
417 })
418 },
419 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
420 name == "BCC"
421 && delimiter == &None
422 => {
423 Ok(highlevel::Command::Bcc {
424 })
425 },
426 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
427 name == "BCS"
428 && delimiter == &Some(String::from("="))
429 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
430 => {
431 let arg_vec = extract_vec_from_args(&arguments)?;
432 let codec_option = arg_vec.get(0);
433 let codec_option_unwrapped = codec_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
434 let codec_option_unwrapped_primitive = extract_primitive_from_field(codec_option_unwrapped, &arguments)?;
435 let codec = extract_int_from_primitive(codec_option_unwrapped_primitive, &arguments)?;
436 Ok(highlevel::Command::Bcs {
437 codec,
438 })
439 },
440 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
441 name == "BAC"
442 && delimiter == &Some(String::from("="))
443 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
444 => {
445 let arg_vec = extract_vec_from_args(&arguments)?;
446 let mut codecs = Vec::new();
447 for codecs_element_raw in arg_vec[0..].into_iter() {
448 let codecs_element_option = if codecs_element_raw.is_empty() { None } else { Some(codecs_element_raw) };
449 let codecs_element_option_unwrapped = codecs_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
450 let codecs_element_option_unwrapped_primitive = extract_primitive_from_field(codecs_element_option_unwrapped, &arguments)?;
451 let codecs_element = extract_int_from_primitive(codecs_element_option_unwrapped_primitive, &arguments)?;
452 codecs.push(codecs_element);
453 }
454 Ok(highlevel::Command::Bac {
455 codecs,
456 })
457 },
458 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
459 name == "BIND"
460 && delimiter == &Some(String::from("="))
461 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
462 => {
463 let arg_vec = extract_vec_from_args(&arguments)?;
464 let mut indicators = Vec::new();
465 for indicators_element_raw in arg_vec[0..].into_iter() {
466 let indicators_element_option = if indicators_element_raw.is_empty() { None } else { Some(indicators_element_raw) };
467 let indicators_element_option_unwrapped = indicators_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
468 let indicators_element_option_unwrapped_primitive = extract_primitive_from_field(indicators_element_option_unwrapped, &arguments)?;
469 let indicators_element = extract_int_from_primitive(indicators_element_option_unwrapped_primitive, &arguments)?;
470 indicators.push(indicators_element);
471 }
472 Ok(highlevel::Command::Bind {
473 indicators,
474 })
475 },
476 lowlevel::Command::Test { name, is_extension: true, ..} if
477 name == "BIND"
478 => {
479 Ok(highlevel::Command::BindTest {})
480 },
481 lowlevel::Command::Read { name, is_extension: true, ..} if
482 name == "BIND"
483 => {
484 Ok(highlevel::Command::BindRead {})
485 },
486 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
487 name == "BIEV"
488 && delimiter == &Some(String::from("="))
489 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
490 => {
491 let arg_vec = extract_vec_from_args(&arguments)?;
492 let anum_option = arg_vec.get(0);
493 let anum_option_unwrapped = anum_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
494 let anum_option_unwrapped_primitive = extract_primitive_from_field(anum_option_unwrapped, &arguments)?;
495 let anum_option_unwrapped_int = extract_int_from_primitive(anum_option_unwrapped_primitive, &arguments)?;
496 let anum = super::types::BluetoothHFIndicator::from_i64(anum_option_unwrapped_int).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
497 let value_option = arg_vec.get(1);
498 let value_option_unwrapped = value_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
499 let value_option_unwrapped_primitive = extract_primitive_from_field(value_option_unwrapped, &arguments)?;
500 let value = extract_int_from_primitive(value_option_unwrapped_primitive, &arguments)?;
501 Ok(highlevel::Command::Biev {
502 anum,
503 value,
504 })
505 },
506 lowlevel::Command::Test { name, is_extension: true, ..} if
507 name == "CHLD"
508 => {
509 Ok(highlevel::Command::ChldTest {})
510 },
511 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
512 name == "CMER"
513 && delimiter == &Some(String::from("="))
514 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
515 => {
516 let arg_vec = extract_vec_from_args(&arguments)?;
517 let mode_option = arg_vec.get(0);
518 let mode_option_unwrapped = mode_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
519 let mode_option_unwrapped_primitive = extract_primitive_from_field(mode_option_unwrapped, &arguments)?;
520 let mode = extract_int_from_primitive(mode_option_unwrapped_primitive, &arguments)?;
521 let keyp_option = arg_vec.get(1);
522 let keyp_option_unwrapped = keyp_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
523 let keyp_option_unwrapped_primitive = extract_primitive_from_field(keyp_option_unwrapped, &arguments)?;
524 let keyp = extract_int_from_primitive(keyp_option_unwrapped_primitive, &arguments)?;
525 let disp_option = arg_vec.get(2);
526 let disp_option_unwrapped = disp_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
527 let disp_option_unwrapped_primitive = extract_primitive_from_field(disp_option_unwrapped, &arguments)?;
528 let disp = extract_int_from_primitive(disp_option_unwrapped_primitive, &arguments)?;
529 let ind_option = arg_vec.get(3);
530 let ind_option_unwrapped = ind_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
531 let ind_option_unwrapped_primitive = extract_primitive_from_field(ind_option_unwrapped, &arguments)?;
532 let ind = extract_int_from_primitive(ind_option_unwrapped_primitive, &arguments)?;
533 Ok(highlevel::Command::Cmer {
534 mode,
535 keyp,
536 disp,
537 ind,
538 })
539 },
540 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
541 name == "NREC"
542 && delimiter == &Some(String::from("="))
543 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
544 => {
545 let arg_vec = extract_vec_from_args(&arguments)?;
546 let nrec_option = arg_vec.get(0);
547 let nrec_option_unwrapped = nrec_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
548 let nrec_option_unwrapped_primitive = extract_primitive_from_field(nrec_option_unwrapped, &arguments)?;
549 let nrec_option_unwrapped_int = extract_int_from_primitive(nrec_option_unwrapped_primitive, &arguments)?;
550 let nrec = nrec_option_unwrapped_int != 0;
551 Ok(highlevel::Command::Nrec {
552 nrec,
553 })
554 },
555 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
556 name == "COPS"
557 && delimiter == &Some(String::from("="))
558 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
559 => {
560 let arg_vec = extract_vec_from_args(&arguments)?;
561 let three_option = arg_vec.get(0);
562 let three_option_unwrapped = three_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
563 let three_option_unwrapped_primitive = extract_primitive_from_field(three_option_unwrapped, &arguments)?;
564 let three = extract_int_from_primitive(three_option_unwrapped_primitive, &arguments)?;
565 let format_option = arg_vec.get(1);
566 let format_option_unwrapped = format_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
567 let format_option_unwrapped_primitive = extract_primitive_from_field(format_option_unwrapped, &arguments)?;
568 let format_option_unwrapped_int = extract_int_from_primitive(format_option_unwrapped_primitive, &arguments)?;
569 let format = super::types::NetworkOperatorNameFormat::from_i64(format_option_unwrapped_int).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
570 Ok(highlevel::Command::Cops {
571 three,
572 format,
573 })
574 },
575 lowlevel::Command::Read { name, is_extension: true, ..} if
576 name == "COPS"
577 => {
578 Ok(highlevel::Command::CopsRead {})
579 },
580 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
581 name == "CMEE"
582 && delimiter == &Some(String::from("="))
583 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
584 => {
585 let arg_vec = extract_vec_from_args(&arguments)?;
586 let enable_option = arg_vec.get(0);
587 let enable_option_unwrapped = enable_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
588 let enable_option_unwrapped_primitive = extract_primitive_from_field(enable_option_unwrapped, &arguments)?;
589 let enable_option_unwrapped_int = extract_int_from_primitive(enable_option_unwrapped_primitive, &arguments)?;
590 let enable = enable_option_unwrapped_int != 0;
591 Ok(highlevel::Command::Cmee {
592 enable,
593 })
594 },
595 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
596 name == "CCWA"
597 && delimiter == &Some(String::from("="))
598 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
599 => {
600 let arg_vec = extract_vec_from_args(&arguments)?;
601 let enable_option = arg_vec.get(0);
602 let enable_option_unwrapped = enable_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
603 let enable_option_unwrapped_primitive = extract_primitive_from_field(enable_option_unwrapped, &arguments)?;
604 let enable_option_unwrapped_int = extract_int_from_primitive(enable_option_unwrapped_primitive, &arguments)?;
605 let enable = enable_option_unwrapped_int != 0;
606 Ok(highlevel::Command::Ccwa {
607 enable,
608 })
609 },
610 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
611 name == "CLIP"
612 && delimiter == &Some(String::from("="))
613 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
614 => {
615 let arg_vec = extract_vec_from_args(&arguments)?;
616 let enable_option = arg_vec.get(0);
617 let enable_option_unwrapped = enable_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
618 let enable_option_unwrapped_primitive = extract_primitive_from_field(enable_option_unwrapped, &arguments)?;
619 let enable_option_unwrapped_int = extract_int_from_primitive(enable_option_unwrapped_primitive, &arguments)?;
620 let enable = enable_option_unwrapped_int != 0;
621 Ok(highlevel::Command::Clip {
622 enable,
623 })
624 },
625 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
626 name == "CNUM"
627 && delimiter == &None
628 => {
629 Ok(highlevel::Command::Cnum {
630 })
631 },
632 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
633 name == "VTS"
634 && delimiter == &Some(String::from("="))
635 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
636 => {
637 let arg_vec = extract_vec_from_args(&arguments)?;
638 let code_option = arg_vec.get(0);
639 let code_option_unwrapped = code_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
640 let code_option_unwrapped_primitive = extract_primitive_from_field(code_option_unwrapped, &arguments)?;
641 let code = code_option_unwrapped_primitive.clone();
642 Ok(highlevel::Command::Vts {
643 code,
644 })
645 },
646 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
647 name == "VGS"
648 && delimiter == &Some(String::from("="))
649 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
650 => {
651 let arg_vec = extract_vec_from_args(&arguments)?;
652 let level_option = arg_vec.get(0);
653 let level_option_unwrapped = level_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
654 let level_option_unwrapped_primitive = extract_primitive_from_field(level_option_unwrapped, &arguments)?;
655 let level = extract_int_from_primitive(level_option_unwrapped_primitive, &arguments)?;
656 Ok(highlevel::Command::Vgs {
657 level,
658 })
659 },
660 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
661 name == "VGM"
662 && delimiter == &Some(String::from("="))
663 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
664 => {
665 let arg_vec = extract_vec_from_args(&arguments)?;
666 let level_option = arg_vec.get(0);
667 let level_option_unwrapped = level_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
668 let level_option_unwrapped_primitive = extract_primitive_from_field(level_option_unwrapped, &arguments)?;
669 let level = extract_int_from_primitive(level_option_unwrapped_primitive, &arguments)?;
670 Ok(highlevel::Command::Vgm {
671 level,
672 })
673 },
674 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
675 name == "BIA"
676 && delimiter == &Some(String::from("="))
677 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
678 => {
679 let arg_vec = extract_vec_from_args(&arguments)?;
680 let mut indrep = Vec::new();
681 for indrep_element_raw in arg_vec[0..].into_iter() {
682 let indrep_element_option = if indrep_element_raw.is_empty() { None } else { Some(indrep_element_raw) };
683 let indrep_element = match indrep_element_option {
684 Some(indrep_element_option_unwrapped) if !indrep_element_option_unwrapped.is_empty() => {
685 let indrep_element_option_unwrapped_primitive = extract_primitive_from_field(indrep_element_option_unwrapped, &arguments)?;
686 let indrep_element_option_unwrapped_int = extract_int_from_primitive(indrep_element_option_unwrapped_primitive, &arguments)?;
687 let indrep_element_unwrapped = indrep_element_option_unwrapped_int != 0;
688 Some(indrep_element_unwrapped)
689 }
690 _ => None,
691 };
692 indrep.push(indrep_element);
693 }
694 Ok(highlevel::Command::Bia {
695 indrep,
696 })
697 },
698 lowlevel::Command::Execute { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
699 name == "A"
700 && delimiter == &None
701 => {
702 Ok(highlevel::Command::Answer {
703 })
704 },
705 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
706 name == "CHUP"
707 && delimiter == &None
708 => {
709 Ok(highlevel::Command::Chup {
710 })
711 },
712 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
713 name == "CHLD"
714 && delimiter == &Some(String::from("="))
715 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
716 => {
717 let arg_vec = extract_vec_from_args(&arguments)?;
718 let command_option = arg_vec.get(0);
719 let command_option_unwrapped = command_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
720 let command_option_unwrapped_primitive = extract_primitive_from_field(command_option_unwrapped, &arguments)?;
721 let command = command_option_unwrapped_primitive.clone();
722 Ok(highlevel::Command::Chld {
723 command,
724 })
725 },
726 lowlevel::Command::Execute { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
727 name == "D"
728 && delimiter == &None
729 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
730 => {
731 let arg_vec = extract_vec_from_args(&arguments)?;
732 let number_option = arg_vec.get(0);
733 let number_option_unwrapped = number_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
734 let number_option_unwrapped_primitive = extract_primitive_from_field(number_option_unwrapped, &arguments)?;
735 let number = number_option_unwrapped_primitive.clone();
736 Ok(highlevel::Command::AtdNumber {
737 number,
738 })
739 },
740 lowlevel::Command::Execute { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
741 name == "D"
742 && delimiter == &Some(String::from(">"))
743 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
744 => {
745 let arg_vec = extract_vec_from_args(&arguments)?;
746 let location_option = arg_vec.get(0);
747 let location_option_unwrapped = location_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
748 let location_option_unwrapped_primitive = extract_primitive_from_field(location_option_unwrapped, &arguments)?;
749 let location = location_option_unwrapped_primitive.clone();
750 Ok(highlevel::Command::AtdMemory {
751 location,
752 })
753 },
754 lowlevel::Command::Execute { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
755 name == "BLDN"
756 && delimiter == &None
757 => {
758 Ok(highlevel::Command::Bldn {
759 })
760 },
761 _ => Err(DeserializeErrorCause::UnknownCommand(lowlevel.clone())),
762 }
763}
764
765pub fn raise_success(lowlevel: &lowlevel::Response) -> Result<highlevel::Success, DeserializeErrorCause> {
767 match lowlevel {
768 lowlevel::Response::Success { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
769 name == "TEST"
770 && delimiter == &Some(String::from(":"))
771 => {
772 Ok(highlevel::Success::Test {
773 })
774 },
775 lowlevel::Response::Success { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
776 name == "TESTNOD"
777 && delimiter == &None
778 => {
779 Ok(highlevel::Success::Testnod {
780 })
781 },
782 lowlevel::Response::Success { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
783 name == "TESTN"
784 && delimiter == &Some(String::from(":"))
785 => {
786 Ok(highlevel::Success::TestResponse {
787 })
788 },
789 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
790 name == "TESTEXT"
791 && delimiter == &Some(String::from(":"))
792 => {
793 Ok(highlevel::Success::Testext {
794 })
795 },
796 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
797 name == "TESTEXTNOD"
798 && delimiter == &None
799 => {
800 Ok(highlevel::Success::Testextnod {
801 })
802 },
803 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
804 name == "TESTI"
805 && delimiter == &Some(String::from(":"))
806 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
807 => {
808 let arg_vec = extract_vec_from_args(&arguments)?;
809 let field_option = arg_vec.get(0);
810 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
811 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
812 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
813 Ok(highlevel::Success::Testi {
814 field,
815 })
816 },
817 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
818 name == "TESTINOD"
819 && delimiter == &None
820 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
821 => {
822 let arg_vec = extract_vec_from_args(&arguments)?;
823 let field_option = arg_vec.get(0);
824 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
825 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
826 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
827 Ok(highlevel::Success::Testinod {
828 field,
829 })
830 },
831 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
832 name == "TESTIC"
833 && delimiter == &Some(String::from(":"))
834 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
835 => {
836 let arg_vec = extract_vec_from_args(&arguments)?;
837 let field_option = arg_vec.get(0);
838 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
839 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
840 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
841 Ok(highlevel::Success::Testic {
842 field,
843 })
844 },
845 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
846 name == "TESTS"
847 && delimiter == &Some(String::from(":"))
848 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
849 => {
850 let arg_vec = extract_vec_from_args(&arguments)?;
851 let field_option = arg_vec.get(0);
852 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
853 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
854 let field = field_option_unwrapped_primitive.clone();
855 Ok(highlevel::Success::Tests {
856 field,
857 })
858 },
859 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
860 name == "TESTSI"
861 && delimiter == &Some(String::from(":"))
862 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
863 => {
864 let arg_vec = extract_vec_from_args(&arguments)?;
865 let field1_option = arg_vec.get(0);
866 let field1_option_unwrapped = field1_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
867 let field1_option_unwrapped_primitive = extract_primitive_from_field(field1_option_unwrapped, &arguments)?;
868 let field1 = field1_option_unwrapped_primitive.clone();
869 let field2_option = arg_vec.get(1);
870 let field2_option_unwrapped = field2_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
871 let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
872 let field2 = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
873 Ok(highlevel::Success::Testsi {
874 field1,
875 field2,
876 })
877 },
878 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
879 name == "TESTSIC"
880 && delimiter == &Some(String::from(":"))
881 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
882 => {
883 let arg_vec = extract_vec_from_args(&arguments)?;
884 let field1_option = arg_vec.get(0);
885 let field1_option_unwrapped = field1_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
886 let field1_option_unwrapped_primitive = extract_primitive_from_field(field1_option_unwrapped, &arguments)?;
887 let field1 = field1_option_unwrapped_primitive.clone();
888 let field2_option = arg_vec.get(1);
889 let field2_option_unwrapped = field2_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
890 let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
891 let field2 = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
892 Ok(highlevel::Success::Testsic {
893 field1,
894 field2,
895 })
896 },
897 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
898 name == "TESTIO"
899 && delimiter == &Some(String::from(":"))
900 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
901 => {
902 let arg_vec = extract_vec_from_args(&arguments)?;
903 let field1_option = arg_vec.get(0);
904 let field1_option_unwrapped = field1_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
905 let field1_option_unwrapped_primitive = extract_primitive_from_field(field1_option_unwrapped, &arguments)?;
906 let field1 = extract_int_from_primitive(field1_option_unwrapped_primitive, &arguments)?;
907 let field2_option = arg_vec.get(1);
908 let field2 = match field2_option {
909 Some(field2_option_unwrapped) if !field2_option_unwrapped.is_empty() => {
910 let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
911 let field2_unwrapped = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
912 Some(field2_unwrapped)
913 }
914 _ => None,
915 };
916 Ok(highlevel::Success::Testio {
917 field1,
918 field2,
919 })
920 },
921 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
922 name == "TESTIOO"
923 && delimiter == &Some(String::from(":"))
924 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
925 => {
926 let arg_vec = extract_vec_from_args(&arguments)?;
927 let field1_option = arg_vec.get(0);
928 let field1_option_unwrapped = field1_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
929 let field1_option_unwrapped_primitive = extract_primitive_from_field(field1_option_unwrapped, &arguments)?;
930 let field1 = extract_int_from_primitive(field1_option_unwrapped_primitive, &arguments)?;
931 let field2_option = arg_vec.get(1);
932 let field2 = match field2_option {
933 Some(field2_option_unwrapped) if !field2_option_unwrapped.is_empty() => {
934 let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
935 let field2_unwrapped = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
936 Some(field2_unwrapped)
937 }
938 _ => None,
939 };
940 let field3_option = arg_vec.get(2);
941 let field3 = match field3_option {
942 Some(field3_option_unwrapped) if !field3_option_unwrapped.is_empty() => {
943 let field3_option_unwrapped_primitive = extract_primitive_from_field(field3_option_unwrapped, &arguments)?;
944 let field3_unwrapped = field3_option_unwrapped_primitive.clone();
945 Some(field3_unwrapped)
946 }
947 _ => None,
948 };
949 Ok(highlevel::Success::Testioo {
950 field1,
951 field2,
952 field3,
953 })
954 },
955 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
956 name == "TESTL"
957 && delimiter == &Some(String::from(":"))
958 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
959 => {
960 let arg_vec = extract_vec_from_args(&arguments)?;
961 let mut field = Vec::new();
962 for field_element_raw in arg_vec[0..].into_iter() {
963 let field_element_option = if field_element_raw.is_empty() { None } else { Some(field_element_raw) };
964 let field_element_option_unwrapped = field_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
965 let field_element_option_unwrapped_primitive = extract_primitive_from_field(field_element_option_unwrapped, &arguments)?;
966 let field_element = extract_int_from_primitive(field_element_option_unwrapped_primitive, &arguments)?;
967 field.push(field_element);
968 }
969 Ok(highlevel::Success::Testl {
970 field,
971 })
972 },
973 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
974 name == "TESTOL"
975 && delimiter == &Some(String::from(":"))
976 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
977 => {
978 let arg_vec = extract_vec_from_args(&arguments)?;
979 let mut field = Vec::new();
980 for field_element_raw in arg_vec[0..].into_iter() {
981 let field_element_option = if field_element_raw.is_empty() { None } else { Some(field_element_raw) };
982 let field_element = match field_element_option {
983 Some(field_element_option_unwrapped) if !field_element_option_unwrapped.is_empty() => {
984 let field_element_option_unwrapped_primitive = extract_primitive_from_field(field_element_option_unwrapped, &arguments)?;
985 let field_element_unwrapped = extract_int_from_primitive(field_element_option_unwrapped_primitive, &arguments)?;
986 Some(field_element_unwrapped)
987 }
988 _ => None,
989 };
990 field.push(field_element);
991 }
992 Ok(highlevel::Success::Testol {
993 field,
994 })
995 },
996 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
997 name == "TESTM"
998 && delimiter == &Some(String::from(":"))
999 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1000 => {
1001 let arg_vec = extract_vec_from_args(&arguments)?;
1002 let mut field = std::collections::HashMap::new();
1003 for field_element in arg_vec[0..].into_iter() {
1004 let field_element_primitive = extract_key_from_field(field_element, &arguments)?;
1005 let field_key = extract_int_from_primitive(field_element_primitive, &arguments)?;
1006 let field_element_primitive = extract_value_from_field(field_element, &arguments)?;
1007 let field_value = field_element_primitive.clone();
1008 let _ = field.insert(field_key, field_value);
1009 }
1010 Ok(highlevel::Success::Testm {
1011 field,
1012 })
1013 },
1014 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1015 name == "TESTP"
1016 && delimiter == &Some(String::from(":"))
1017 && matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
1018 => {
1019 let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
1020 let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1021 let field_option = arg_vec.get(0);
1022 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1023 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
1024 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
1025 Ok(highlevel::Success::Testp {
1026 field,
1027 })
1028 },
1029 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1030 name == "TESTPP"
1031 && delimiter == &Some(String::from(":"))
1032 && matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
1033 => {
1034 let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
1035 let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1036 let field1_option = arg_vec.get(0);
1037 let field1_option_unwrapped = field1_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1038 let field1_option_unwrapped_primitive = extract_primitive_from_field(field1_option_unwrapped, &arguments)?;
1039 let field1 = extract_int_from_primitive(field1_option_unwrapped_primitive, &arguments)?;
1040 let arg_vec = arg_vec_vec.get(1).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1041 let field2_option = arg_vec.get(0);
1042 let field2_option_unwrapped = field2_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1043 let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
1044 let field2 = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
1045 let field3_option = arg_vec.get(1);
1046 let field3_option_unwrapped = field3_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1047 let field3_option_unwrapped_primitive = extract_primitive_from_field(field3_option_unwrapped, &arguments)?;
1048 let field3 = field3_option_unwrapped_primitive.clone();
1049 Ok(highlevel::Success::Testpp {
1050 field1,
1051 field2,
1052 field3,
1053 })
1054 },
1055 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1056 name == "TESTPMPIL"
1057 && delimiter == &Some(String::from(":"))
1058 && matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
1059 => {
1060 let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
1061 let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1062 let mut field1 = std::collections::HashMap::new();
1063 for field1_element in arg_vec[0..].into_iter() {
1064 let field1_element_primitive = extract_key_from_field(field1_element, &arguments)?;
1065 let field1_key = extract_int_from_primitive(field1_element_primitive, &arguments)?;
1066 let field1_element_primitive = extract_value_from_field(field1_element, &arguments)?;
1067 let field1_value = field1_element_primitive.clone();
1068 let _ = field1.insert(field1_key, field1_value);
1069 }
1070 let arg_vec = arg_vec_vec.get(1).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1071 let field2_option = arg_vec.get(0);
1072 let field2_option_unwrapped = field2_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1073 let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
1074 let field2 = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
1075 let mut field3 = Vec::new();
1076 for field3_element_raw in arg_vec[1..].into_iter() {
1077 let field3_element_option = if field3_element_raw.is_empty() { None } else { Some(field3_element_raw) };
1078 let field3_element_option_unwrapped = field3_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1079 let field3_element_option_unwrapped_primitive = extract_primitive_from_field(field3_element_option_unwrapped, &arguments)?;
1080 let field3_element = extract_int_from_primitive(field3_element_option_unwrapped_primitive, &arguments)?;
1081 field3.push(field3_element);
1082 }
1083 Ok(highlevel::Success::Testpmpil {
1084 field1,
1085 field2,
1086 field3,
1087 })
1088 },
1089 lowlevel::Response::Success { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1090 name == "SAME"
1091 && delimiter == &Some(String::from(":"))
1092 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1093 => {
1094 let arg_vec = extract_vec_from_args(&arguments)?;
1095 let field_option = arg_vec.get(0);
1096 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1097 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
1098 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
1099 Ok(highlevel::Success::SameOne {
1100 field,
1101 })
1102 },
1103 lowlevel::Response::Success { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1104 name == "SAME"
1105 && delimiter == &Some(String::from(":"))
1106 && matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
1107 => {
1108 let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
1109 let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1110 let field_option = arg_vec.get(0);
1111 let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1112 let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
1113 let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
1114 Ok(highlevel::Success::SameTwo {
1115 field,
1116 })
1117 },
1118 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1119 name == "BRSF"
1120 && delimiter == &Some(String::from(":"))
1121 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1122 => {
1123 let arg_vec = extract_vec_from_args(&arguments)?;
1124 let features_option = arg_vec.get(0);
1125 let features_option_unwrapped = features_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1126 let features_option_unwrapped_primitive = extract_primitive_from_field(features_option_unwrapped, &arguments)?;
1127 let features = extract_int_from_primitive(features_option_unwrapped_primitive, &arguments)?;
1128 Ok(highlevel::Success::Brsf {
1129 features,
1130 })
1131 },
1132 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1133 name == "CIND"
1134 && delimiter == &Some(String::from(":"))
1135 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1136 => {
1137 let arg_vec = extract_vec_from_args(&arguments)?;
1138 let mut ordered_values = Vec::new();
1139 for ordered_values_element_raw in arg_vec[0..].into_iter() {
1140 let ordered_values_element_option = if ordered_values_element_raw.is_empty() { None } else { Some(ordered_values_element_raw) };
1141 let ordered_values_element_option_unwrapped = ordered_values_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1142 let ordered_values_element_option_unwrapped_primitive = extract_primitive_from_field(ordered_values_element_option_unwrapped, &arguments)?;
1143 let ordered_values_element = extract_int_from_primitive(ordered_values_element_option_unwrapped_primitive, &arguments)?;
1144 ordered_values.push(ordered_values_element);
1145 }
1146 Ok(highlevel::Success::CindRead {
1147 ordered_values,
1148 })
1149 },
1150 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1151 name == "CLCC"
1152 && delimiter == &Some(String::from(":"))
1153 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1154 => {
1155 let arg_vec = extract_vec_from_args(&arguments)?;
1156 let index_option = arg_vec.get(0);
1157 let index_option_unwrapped = index_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1158 let index_option_unwrapped_primitive = extract_primitive_from_field(index_option_unwrapped, &arguments)?;
1159 let index = extract_int_from_primitive(index_option_unwrapped_primitive, &arguments)?;
1160 let direction_option = arg_vec.get(1);
1161 let direction_option_unwrapped = direction_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1162 let direction_option_unwrapped_primitive = extract_primitive_from_field(direction_option_unwrapped, &arguments)?;
1163 let direction = extract_int_from_primitive(direction_option_unwrapped_primitive, &arguments)?;
1164 let status_option = arg_vec.get(2);
1165 let status_option_unwrapped = status_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1166 let status_option_unwrapped_primitive = extract_primitive_from_field(status_option_unwrapped, &arguments)?;
1167 let status = extract_int_from_primitive(status_option_unwrapped_primitive, &arguments)?;
1168 let mode_option = arg_vec.get(3);
1169 let mode_option_unwrapped = mode_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1170 let mode_option_unwrapped_primitive = extract_primitive_from_field(mode_option_unwrapped, &arguments)?;
1171 let mode = extract_int_from_primitive(mode_option_unwrapped_primitive, &arguments)?;
1172 let multiparty_option = arg_vec.get(4);
1173 let multiparty_option_unwrapped = multiparty_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1174 let multiparty_option_unwrapped_primitive = extract_primitive_from_field(multiparty_option_unwrapped, &arguments)?;
1175 let multiparty = extract_int_from_primitive(multiparty_option_unwrapped_primitive, &arguments)?;
1176 let number_option = arg_vec.get(5);
1177 let number = match number_option {
1178 Some(number_option_unwrapped) if !number_option_unwrapped.is_empty() => {
1179 let number_option_unwrapped_primitive = extract_primitive_from_field(number_option_unwrapped, &arguments)?;
1180 let number_unwrapped = number_option_unwrapped_primitive.clone();
1181 Some(number_unwrapped)
1182 }
1183 _ => None,
1184 };
1185 let ty_option = arg_vec.get(6);
1186 let ty = match ty_option {
1187 Some(ty_option_unwrapped) if !ty_option_unwrapped.is_empty() => {
1188 let ty_option_unwrapped_primitive = extract_primitive_from_field(ty_option_unwrapped, &arguments)?;
1189 let ty_unwrapped = extract_int_from_primitive(ty_option_unwrapped_primitive, &arguments)?;
1190 Some(ty_unwrapped)
1191 }
1192 _ => None,
1193 };
1194 let alpha_option = arg_vec.get(7);
1195 let alpha = match alpha_option {
1196 Some(alpha_option_unwrapped) if !alpha_option_unwrapped.is_empty() => {
1197 let alpha_option_unwrapped_primitive = extract_primitive_from_field(alpha_option_unwrapped, &arguments)?;
1198 let alpha_unwrapped = alpha_option_unwrapped_primitive.clone();
1199 Some(alpha_unwrapped)
1200 }
1201 _ => None,
1202 };
1203 let priority_option = arg_vec.get(8);
1204 let priority = match priority_option {
1205 Some(priority_option_unwrapped) if !priority_option_unwrapped.is_empty() => {
1206 let priority_option_unwrapped_primitive = extract_primitive_from_field(priority_option_unwrapped, &arguments)?;
1207 let priority_unwrapped = extract_int_from_primitive(priority_option_unwrapped_primitive, &arguments)?;
1208 Some(priority_unwrapped)
1209 }
1210 _ => None,
1211 };
1212 Ok(highlevel::Success::Clcc {
1213 index,
1214 direction,
1215 status,
1216 mode,
1217 multiparty,
1218 number,
1219 ty,
1220 alpha,
1221 priority,
1222 })
1223 },
1224 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1225 name == "BCS"
1226 && delimiter == &Some(String::from(":"))
1227 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1228 => {
1229 let arg_vec = extract_vec_from_args(&arguments)?;
1230 let codec_option = arg_vec.get(0);
1231 let codec_option_unwrapped = codec_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1232 let codec_option_unwrapped_primitive = extract_primitive_from_field(codec_option_unwrapped, &arguments)?;
1233 let codec = extract_int_from_primitive(codec_option_unwrapped_primitive, &arguments)?;
1234 Ok(highlevel::Success::Bcs {
1235 codec,
1236 })
1237 },
1238 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1239 name == "BIND"
1240 && delimiter == &Some(String::from(":"))
1241 && matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
1242 => {
1243 let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
1244 let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1245 let mut indicators = Vec::new();
1246 for indicators_element_raw in arg_vec[0..].into_iter() {
1247 let indicators_element_option = if indicators_element_raw.is_empty() { None } else { Some(indicators_element_raw) };
1248 let indicators_element_option_unwrapped = indicators_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1249 let indicators_element_option_unwrapped_primitive = extract_primitive_from_field(indicators_element_option_unwrapped, &arguments)?;
1250 let indicators_element_option_unwrapped_int = extract_int_from_primitive(indicators_element_option_unwrapped_primitive, &arguments)?;
1251 let indicators_element = super::types::BluetoothHFIndicator::from_i64(indicators_element_option_unwrapped_int).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1252 indicators.push(indicators_element);
1253 }
1254 Ok(highlevel::Success::BindList {
1255 indicators,
1256 })
1257 },
1258 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1259 name == "BIND"
1260 && delimiter == &Some(String::from(":"))
1261 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1262 => {
1263 let arg_vec = extract_vec_from_args(&arguments)?;
1264 let anum_option = arg_vec.get(0);
1265 let anum_option_unwrapped = anum_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1266 let anum_option_unwrapped_primitive = extract_primitive_from_field(anum_option_unwrapped, &arguments)?;
1267 let anum_option_unwrapped_int = extract_int_from_primitive(anum_option_unwrapped_primitive, &arguments)?;
1268 let anum = super::types::BluetoothHFIndicator::from_i64(anum_option_unwrapped_int).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1269 let state_option = arg_vec.get(1);
1270 let state_option_unwrapped = state_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1271 let state_option_unwrapped_primitive = extract_primitive_from_field(state_option_unwrapped, &arguments)?;
1272 let state_option_unwrapped_int = extract_int_from_primitive(state_option_unwrapped_primitive, &arguments)?;
1273 let state = state_option_unwrapped_int != 0;
1274 Ok(highlevel::Success::BindStatus {
1275 anum,
1276 state,
1277 })
1278 },
1279 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1280 name == "CHLD"
1281 && delimiter == &Some(String::from(":"))
1282 && matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
1283 => {
1284 let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
1285 let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1286 let mut commands = Vec::new();
1287 for commands_element_raw in arg_vec[0..].into_iter() {
1288 let commands_element_option = if commands_element_raw.is_empty() { None } else { Some(commands_element_raw) };
1289 let commands_element_option_unwrapped = commands_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1290 let commands_element_option_unwrapped_primitive = extract_primitive_from_field(commands_element_option_unwrapped, &arguments)?;
1291 let commands_element = commands_element_option_unwrapped_primitive.clone();
1292 commands.push(commands_element);
1293 }
1294 Ok(highlevel::Success::Chld {
1295 commands,
1296 })
1297 },
1298 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1299 name == "COPS"
1300 && delimiter == &Some(String::from(":"))
1301 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1302 => {
1303 let arg_vec = extract_vec_from_args(&arguments)?;
1304 let format_option = arg_vec.get(0);
1305 let format_option_unwrapped = format_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1306 let format_option_unwrapped_primitive = extract_primitive_from_field(format_option_unwrapped, &arguments)?;
1307 let format_option_unwrapped_int = extract_int_from_primitive(format_option_unwrapped_primitive, &arguments)?;
1308 let format = super::types::NetworkOperatorNameFormat::from_i64(format_option_unwrapped_int).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1309 let zero_option = arg_vec.get(1);
1310 let zero_option_unwrapped = zero_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1311 let zero_option_unwrapped_primitive = extract_primitive_from_field(zero_option_unwrapped, &arguments)?;
1312 let zero = extract_int_from_primitive(zero_option_unwrapped_primitive, &arguments)?;
1313 let operator_option = arg_vec.get(2);
1314 let operator_option_unwrapped = operator_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1315 let operator_option_unwrapped_primitive = extract_primitive_from_field(operator_option_unwrapped, &arguments)?;
1316 let operator = operator_option_unwrapped_primitive.clone();
1317 Ok(highlevel::Success::Cops {
1318 format,
1319 zero,
1320 operator,
1321 })
1322 },
1323 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1324 name == "CLIP"
1325 && delimiter == &Some(String::from(":"))
1326 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1327 => {
1328 let arg_vec = extract_vec_from_args(&arguments)?;
1329 let number_option = arg_vec.get(0);
1330 let number_option_unwrapped = number_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1331 let number_option_unwrapped_primitive = extract_primitive_from_field(number_option_unwrapped, &arguments)?;
1332 let number = number_option_unwrapped_primitive.clone();
1333 let ty_option = arg_vec.get(1);
1334 let ty_option_unwrapped = ty_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1335 let ty_option_unwrapped_primitive = extract_primitive_from_field(ty_option_unwrapped, &arguments)?;
1336 let ty = extract_int_from_primitive(ty_option_unwrapped_primitive, &arguments)?;
1337 Ok(highlevel::Success::Clip {
1338 number,
1339 ty,
1340 })
1341 },
1342 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1343 name == "CNUM"
1344 && delimiter == &Some(String::from(":"))
1345 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1346 => {
1347 let arg_vec = extract_vec_from_args(&arguments)?;
1348 let alpha_option = arg_vec.get(0);
1349 let alpha_option_unwrapped = alpha_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1350 let alpha_option_unwrapped_primitive = extract_primitive_from_field(alpha_option_unwrapped, &arguments)?;
1351 let alpha = alpha_option_unwrapped_primitive.clone();
1352 let number_option = arg_vec.get(1);
1353 let number_option_unwrapped = number_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1354 let number_option_unwrapped_primitive = extract_primitive_from_field(number_option_unwrapped, &arguments)?;
1355 let number = number_option_unwrapped_primitive.clone();
1356 let ty_option = arg_vec.get(2);
1357 let ty_option_unwrapped = ty_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1358 let ty_option_unwrapped_primitive = extract_primitive_from_field(ty_option_unwrapped, &arguments)?;
1359 let ty = extract_int_from_primitive(ty_option_unwrapped_primitive, &arguments)?;
1360 let speed_option = arg_vec.get(3);
1361 let speed_option_unwrapped = speed_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1362 let speed_option_unwrapped_primitive = extract_primitive_from_field(speed_option_unwrapped, &arguments)?;
1363 let speed = speed_option_unwrapped_primitive.clone();
1364 let service_option = arg_vec.get(4);
1365 let service_option_unwrapped = service_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1366 let service_option_unwrapped_primitive = extract_primitive_from_field(service_option_unwrapped, &arguments)?;
1367 let service = extract_int_from_primitive(service_option_unwrapped_primitive, &arguments)?;
1368 Ok(highlevel::Success::Cnum {
1369 alpha,
1370 number,
1371 ty,
1372 speed,
1373 service,
1374 })
1375 },
1376 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1377 name == "VGS"
1378 && delimiter == &Some(String::from(":"))
1379 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1380 => {
1381 let arg_vec = extract_vec_from_args(&arguments)?;
1382 let level_option = arg_vec.get(0);
1383 let level_option_unwrapped = level_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1384 let level_option_unwrapped_primitive = extract_primitive_from_field(level_option_unwrapped, &arguments)?;
1385 let level = extract_int_from_primitive(level_option_unwrapped_primitive, &arguments)?;
1386 Ok(highlevel::Success::Vgs {
1387 level,
1388 })
1389 },
1390 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1391 name == "VGM"
1392 && delimiter == &Some(String::from(":"))
1393 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1394 => {
1395 let arg_vec = extract_vec_from_args(&arguments)?;
1396 let level_option = arg_vec.get(0);
1397 let level_option_unwrapped = level_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1398 let level_option_unwrapped_primitive = extract_primitive_from_field(level_option_unwrapped, &arguments)?;
1399 let level = extract_int_from_primitive(level_option_unwrapped_primitive, &arguments)?;
1400 Ok(highlevel::Success::Vgm {
1401 level,
1402 })
1403 },
1404 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1405 name == "CIEV"
1406 && delimiter == &Some(String::from(":"))
1407 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1408 => {
1409 let arg_vec = extract_vec_from_args(&arguments)?;
1410 let ind_option = arg_vec.get(0);
1411 let ind_option_unwrapped = ind_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1412 let ind_option_unwrapped_primitive = extract_primitive_from_field(ind_option_unwrapped, &arguments)?;
1413 let ind = extract_int_from_primitive(ind_option_unwrapped_primitive, &arguments)?;
1414 let value_option = arg_vec.get(1);
1415 let value_option_unwrapped = value_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1416 let value_option_unwrapped_primitive = extract_primitive_from_field(value_option_unwrapped, &arguments)?;
1417 let value = extract_int_from_primitive(value_option_unwrapped_primitive, &arguments)?;
1418 Ok(highlevel::Success::Ciev {
1419 ind,
1420 value,
1421 })
1422 },
1423 lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1424 name == "CCWA"
1425 && delimiter == &Some(String::from(":"))
1426 && matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1427 => {
1428 let arg_vec = extract_vec_from_args(&arguments)?;
1429 let number_option = arg_vec.get(0);
1430 let number_option_unwrapped = number_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1431 let number_option_unwrapped_primitive = extract_primitive_from_field(number_option_unwrapped, &arguments)?;
1432 let number = number_option_unwrapped_primitive.clone();
1433 let ty_option = arg_vec.get(1);
1434 let ty_option_unwrapped = ty_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1435 let ty_option_unwrapped_primitive = extract_primitive_from_field(ty_option_unwrapped, &arguments)?;
1436 let ty = extract_int_from_primitive(ty_option_unwrapped_primitive, &arguments)?;
1437 Ok(highlevel::Success::Ccwa {
1438 number,
1439 ty,
1440 })
1441 },
1442 lowlevel::Response::Success { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
1443 name == "RING"
1444 && delimiter == &None
1445 => {
1446 Ok(highlevel::Success::Ring {
1447 })
1448 },
1449 _ => Err(DeserializeErrorCause::UnknownResponse(lowlevel.clone())),
1450 }
1451}
1452
1453pub fn lower_command(highlevel: &highlevel::Command) -> lowlevel::Command {
1454 match highlevel {
1455 highlevel::Command::Testex { } => {
1456 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1457 lowlevel::Command::Execute { name: String::from("TESTEX"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1458 },
1459 highlevel::Command::Testexext { } => {
1460 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1461 lowlevel::Command::Execute { name: String::from("TESTEXEXT"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1462 },
1463 highlevel::Command::TestCommand { } => {
1464 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1465 lowlevel::Command::Execute { name: String::from("TESTNEX"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1466 },
1467 highlevel::Command::Testexextfi {
1468 field,
1469 } => {
1470 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1471 let field_string = i64::to_string(&field);
1472 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1473 raw_arguments.push(field_primitive);
1474 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1475 lowlevel::Command::Execute { name: String::from("TESTEXEXTFI"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1476 },
1477 highlevel::Command::Testexextfic {
1478 field,
1479 } => {
1480 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1481 let field_string = i64::to_string(&field);
1482 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1483 raw_arguments.push(field_primitive);
1484 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1485 lowlevel::Command::Execute { name: String::from("TESTEXEXTFIC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1486 },
1487 highlevel::Command::Testnsd {
1488 field,
1489 } => {
1490 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1491 let field_string = i64::to_string(&field);
1492 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1493 raw_arguments.push(field_primitive);
1494 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1495 lowlevel::Command::Execute { name: String::from("TESTNSD"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(">")), arguments, terminator: None } }
1496 },
1497 highlevel::Command::Testnst {
1498 field,
1499 } => {
1500 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1501 let field_string = i64::to_string(&field);
1502 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1503 raw_arguments.push(field_primitive);
1504 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1505 lowlevel::Command::Execute { name: String::from("TESTNST"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: Some(String::from(";")) } }
1506 },
1507 highlevel::Command::Testnsdnst {
1508 field,
1509 } => {
1510 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1511 let field_string = i64::to_string(&field);
1512 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1513 raw_arguments.push(field_primitive);
1514 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1515 lowlevel::Command::Execute { name: String::from("TESTNSDNST"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(">")), arguments, terminator: Some(String::from(";")) } }
1516 },
1517 highlevel::Command::Testnod {
1518 field,
1519 } => {
1520 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1521 let field_string = i64::to_string(&field);
1522 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1523 raw_arguments.push(field_primitive);
1524 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1525 lowlevel::Command::Execute { name: String::from("TESTNOD"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1526 },
1527 highlevel::Command::Testexextfs {
1528 field,
1529 } => {
1530 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1531 let field_string = field.clone();
1532 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1533 raw_arguments.push(field_primitive);
1534 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1535 lowlevel::Command::Execute { name: String::from("TESTEXEXTFS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1536 },
1537 highlevel::Command::Testexextfsi {
1538 field1,
1539 field2,
1540 } => {
1541 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1542 let field1_string = field1.clone();
1543 let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
1544 raw_arguments.push(field1_primitive);
1545 let field2_string = i64::to_string(&field2);
1546 let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
1547 raw_arguments.push(field2_primitive);
1548 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1549 lowlevel::Command::Execute { name: String::from("TESTEXEXTFSI"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1550 },
1551 highlevel::Command::Testexextfsic {
1552 field1,
1553 field2,
1554 } => {
1555 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1556 let field1_string = field1.clone();
1557 let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
1558 raw_arguments.push(field1_primitive);
1559 let field2_string = i64::to_string(&field2);
1560 let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
1561 raw_arguments.push(field2_primitive);
1562 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1563 lowlevel::Command::Execute { name: String::from("TESTEXEXTFSIC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1564 },
1565 highlevel::Command::Testio {
1566 field1,
1567 field2,
1568 } => {
1569 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1570 let field1_string = i64::to_string(&field1);
1571 let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
1572 raw_arguments.push(field1_primitive);
1573 match field2 {
1574 None => {}
1575 Some(field2_unwrapped) => {
1576 let field2_unwrapped_string = i64::to_string(&field2_unwrapped);
1577 let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_unwrapped_string);
1578 raw_arguments.push(field2_primitive);
1579 }
1580 }
1581 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1582 lowlevel::Command::Execute { name: String::from("TESTIO"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1583 },
1584 highlevel::Command::Testl {
1585 field,
1586 } => {
1587 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1588 for field_element in field.into_iter() {
1589 let field_element_string = i64::to_string(&field_element);
1590 let field_element_primitive = lowlevel::Argument::PrimitiveArgument(field_element_string);
1591 raw_arguments.push(field_element_primitive);
1592 }
1593 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1594 lowlevel::Command::Execute { name: String::from("TESTL"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1595 },
1596 highlevel::Command::Testol {
1597 field,
1598 } => {
1599 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1600 for field_element in field.into_iter() {
1601 match field_element {
1602 None => {
1603 raw_arguments.push(lowlevel::Argument::PrimitiveArgument(String::new()));
1604 }
1605 Some(field_element_unwrapped) => {
1606 let field_element_unwrapped_string = i64::to_string(&field_element_unwrapped);
1607 let field_element_primitive = lowlevel::Argument::PrimitiveArgument(field_element_unwrapped_string);
1608 raw_arguments.push(field_element_primitive);
1609 }
1610 }
1611 }
1612 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1613 lowlevel::Command::Execute { name: String::from("TESTOL"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1614 },
1615 highlevel::Command::Testm {
1616 field,
1617 } => {
1618 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1619 for (field_typed_key, field_typed_value) in field {
1620 let field_primitive_key = i64::to_string(&field_typed_key);
1621 let field_primitive_value = field_typed_value.clone();
1622 let field_untyped_pair = lowlevel::Argument::KeyValueArgument { key: field_primitive_key, value: field_primitive_value };
1623 raw_arguments.push(field_untyped_pair);
1624 }
1625 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1626 lowlevel::Command::Execute { name: String::from("TESTM"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1627 },
1628 highlevel::Command::Testp {
1629 field,
1630 } => {
1631 let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
1632 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
1633 let field_string = i64::to_string(&field);
1634 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1635 raw_arguments_inner.push(field_primitive);
1636 raw_arguments_outer.push(raw_arguments_inner);
1637 let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
1638 lowlevel::Command::Execute { name: String::from("TESTP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1639 },
1640 highlevel::Command::Testpp {
1641 field1,
1642 field2,
1643 field3,
1644 } => {
1645 let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
1646 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
1647 let field1_string = i64::to_string(&field1);
1648 let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
1649 raw_arguments_inner.push(field1_primitive);
1650 raw_arguments_outer.push(raw_arguments_inner);
1651 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
1652 let field2_string = i64::to_string(&field2);
1653 let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
1654 raw_arguments_inner.push(field2_primitive);
1655 let field3_string = field3.clone();
1656 let field3_primitive = lowlevel::Argument::PrimitiveArgument(field3_string);
1657 raw_arguments_inner.push(field3_primitive);
1658 raw_arguments_outer.push(raw_arguments_inner);
1659 let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
1660 lowlevel::Command::Execute { name: String::from("TESTPP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1661 },
1662 highlevel::Command::Testpmpil {
1663 field1,
1664 field2,
1665 field3,
1666 } => {
1667 let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
1668 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
1669 for (field1_typed_key, field1_typed_value) in field1 {
1670 let field1_primitive_key = i64::to_string(&field1_typed_key);
1671 let field1_primitive_value = field1_typed_value.clone();
1672 let field1_untyped_pair = lowlevel::Argument::KeyValueArgument { key: field1_primitive_key, value: field1_primitive_value };
1673 raw_arguments_inner.push(field1_untyped_pair);
1674 }
1675 raw_arguments_outer.push(raw_arguments_inner);
1676 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
1677 let field2_string = i64::to_string(&field2);
1678 let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
1679 raw_arguments_inner.push(field2_primitive);
1680 for field3_element in field3.into_iter() {
1681 let field3_element_string = i64::to_string(&field3_element);
1682 let field3_element_primitive = lowlevel::Argument::PrimitiveArgument(field3_element_string);
1683 raw_arguments_inner.push(field3_element_primitive);
1684 }
1685 raw_arguments_outer.push(raw_arguments_inner);
1686 let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
1687 lowlevel::Command::Execute { name: String::from("TESTPMPIL"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1688 },
1689 highlevel::Command::TestrRead {} => {
1690 lowlevel::Command::Read { name: String::from("TESTR"), is_extension: false }
1691 },
1692 highlevel::Command::TestrexRead {} => {
1693 lowlevel::Command::Read { name: String::from("TESTREX"), is_extension: true }
1694 },
1695 highlevel::Command::TesttTest {} => {
1696 lowlevel::Command::Test { name: String::from("TESTT"), is_extension: false }
1697 },
1698 highlevel::Command::TesttexTest {} => {
1699 lowlevel::Command::Test { name: String::from("TESTTEX"), is_extension: true }
1700 },
1701 highlevel::Command::Testenum {
1702 field,
1703 } => {
1704 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1705 let field_string_int = *field as i64;
1706 let field_string = i64::to_string(&field_string_int);
1707 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1708 raw_arguments.push(field_primitive);
1709 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1710 lowlevel::Command::Execute { name: String::from("TESTENUM"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1711 },
1712 highlevel::Command::Testbool {
1713 field,
1714 } => {
1715 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1716 let field_string_int = if *field { 1 } else { 0 };
1717 let field_string = i64::to_string(&field_string_int);
1718 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1719 raw_arguments.push(field_primitive);
1720 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1721 lowlevel::Command::Execute { name: String::from("TESTBOOL"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1722 },
1723 highlevel::Command::Testotherfile { } => {
1724 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1725 lowlevel::Command::Execute { name: String::from("TESTOTHERFILE"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1726 },
1727 highlevel::Command::Brsf {
1728 features,
1729 } => {
1730 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1731 let features_string = i64::to_string(&features);
1732 let features_primitive = lowlevel::Argument::PrimitiveArgument(features_string);
1733 raw_arguments.push(features_primitive);
1734 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1735 lowlevel::Command::Execute { name: String::from("BRSF"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1736 },
1737 highlevel::Command::CindTest {} => {
1738 lowlevel::Command::Test { name: String::from("CIND"), is_extension: true }
1739 },
1740 highlevel::Command::CindRead {} => {
1741 lowlevel::Command::Read { name: String::from("CIND"), is_extension: true }
1742 },
1743 highlevel::Command::Clcc { } => {
1744 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1745 lowlevel::Command::Execute { name: String::from("CLCC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1746 },
1747 highlevel::Command::Bcc { } => {
1748 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1749 lowlevel::Command::Execute { name: String::from("BCC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1750 },
1751 highlevel::Command::Bcs {
1752 codec,
1753 } => {
1754 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1755 let codec_string = i64::to_string(&codec);
1756 let codec_primitive = lowlevel::Argument::PrimitiveArgument(codec_string);
1757 raw_arguments.push(codec_primitive);
1758 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1759 lowlevel::Command::Execute { name: String::from("BCS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1760 },
1761 highlevel::Command::Bac {
1762 codecs,
1763 } => {
1764 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1765 for codecs_element in codecs.into_iter() {
1766 let codecs_element_string = i64::to_string(&codecs_element);
1767 let codecs_element_primitive = lowlevel::Argument::PrimitiveArgument(codecs_element_string);
1768 raw_arguments.push(codecs_element_primitive);
1769 }
1770 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1771 lowlevel::Command::Execute { name: String::from("BAC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1772 },
1773 highlevel::Command::Bind {
1774 indicators,
1775 } => {
1776 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1777 for indicators_element in indicators.into_iter() {
1778 let indicators_element_string = i64::to_string(&indicators_element);
1779 let indicators_element_primitive = lowlevel::Argument::PrimitiveArgument(indicators_element_string);
1780 raw_arguments.push(indicators_element_primitive);
1781 }
1782 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1783 lowlevel::Command::Execute { name: String::from("BIND"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1784 },
1785 highlevel::Command::BindTest {} => {
1786 lowlevel::Command::Test { name: String::from("BIND"), is_extension: true }
1787 },
1788 highlevel::Command::BindRead {} => {
1789 lowlevel::Command::Read { name: String::from("BIND"), is_extension: true }
1790 },
1791 highlevel::Command::Biev {
1792 anum,
1793 value,
1794 } => {
1795 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1796 let anum_string_int = *anum as i64;
1797 let anum_string = i64::to_string(&anum_string_int);
1798 let anum_primitive = lowlevel::Argument::PrimitiveArgument(anum_string);
1799 raw_arguments.push(anum_primitive);
1800 let value_string = i64::to_string(&value);
1801 let value_primitive = lowlevel::Argument::PrimitiveArgument(value_string);
1802 raw_arguments.push(value_primitive);
1803 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1804 lowlevel::Command::Execute { name: String::from("BIEV"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1805 },
1806 highlevel::Command::ChldTest {} => {
1807 lowlevel::Command::Test { name: String::from("CHLD"), is_extension: true }
1808 },
1809 highlevel::Command::Cmer {
1810 mode,
1811 keyp,
1812 disp,
1813 ind,
1814 } => {
1815 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1816 let mode_string = i64::to_string(&mode);
1817 let mode_primitive = lowlevel::Argument::PrimitiveArgument(mode_string);
1818 raw_arguments.push(mode_primitive);
1819 let keyp_string = i64::to_string(&keyp);
1820 let keyp_primitive = lowlevel::Argument::PrimitiveArgument(keyp_string);
1821 raw_arguments.push(keyp_primitive);
1822 let disp_string = i64::to_string(&disp);
1823 let disp_primitive = lowlevel::Argument::PrimitiveArgument(disp_string);
1824 raw_arguments.push(disp_primitive);
1825 let ind_string = i64::to_string(&ind);
1826 let ind_primitive = lowlevel::Argument::PrimitiveArgument(ind_string);
1827 raw_arguments.push(ind_primitive);
1828 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1829 lowlevel::Command::Execute { name: String::from("CMER"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1830 },
1831 highlevel::Command::Nrec {
1832 nrec,
1833 } => {
1834 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1835 let nrec_string_int = if *nrec { 1 } else { 0 };
1836 let nrec_string = i64::to_string(&nrec_string_int);
1837 let nrec_primitive = lowlevel::Argument::PrimitiveArgument(nrec_string);
1838 raw_arguments.push(nrec_primitive);
1839 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1840 lowlevel::Command::Execute { name: String::from("NREC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1841 },
1842 highlevel::Command::Cops {
1843 three,
1844 format,
1845 } => {
1846 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1847 let three_string = i64::to_string(&three);
1848 let three_primitive = lowlevel::Argument::PrimitiveArgument(three_string);
1849 raw_arguments.push(three_primitive);
1850 let format_string_int = *format as i64;
1851 let format_string = i64::to_string(&format_string_int);
1852 let format_primitive = lowlevel::Argument::PrimitiveArgument(format_string);
1853 raw_arguments.push(format_primitive);
1854 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1855 lowlevel::Command::Execute { name: String::from("COPS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1856 },
1857 highlevel::Command::CopsRead {} => {
1858 lowlevel::Command::Read { name: String::from("COPS"), is_extension: true }
1859 },
1860 highlevel::Command::Cmee {
1861 enable,
1862 } => {
1863 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1864 let enable_string_int = if *enable { 1 } else { 0 };
1865 let enable_string = i64::to_string(&enable_string_int);
1866 let enable_primitive = lowlevel::Argument::PrimitiveArgument(enable_string);
1867 raw_arguments.push(enable_primitive);
1868 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1869 lowlevel::Command::Execute { name: String::from("CMEE"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1870 },
1871 highlevel::Command::Ccwa {
1872 enable,
1873 } => {
1874 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1875 let enable_string_int = if *enable { 1 } else { 0 };
1876 let enable_string = i64::to_string(&enable_string_int);
1877 let enable_primitive = lowlevel::Argument::PrimitiveArgument(enable_string);
1878 raw_arguments.push(enable_primitive);
1879 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1880 lowlevel::Command::Execute { name: String::from("CCWA"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1881 },
1882 highlevel::Command::Clip {
1883 enable,
1884 } => {
1885 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1886 let enable_string_int = if *enable { 1 } else { 0 };
1887 let enable_string = i64::to_string(&enable_string_int);
1888 let enable_primitive = lowlevel::Argument::PrimitiveArgument(enable_string);
1889 raw_arguments.push(enable_primitive);
1890 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1891 lowlevel::Command::Execute { name: String::from("CLIP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1892 },
1893 highlevel::Command::Cnum { } => {
1894 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1895 lowlevel::Command::Execute { name: String::from("CNUM"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1896 },
1897 highlevel::Command::Vts {
1898 code,
1899 } => {
1900 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1901 let code_string = code.clone();
1902 let code_primitive = lowlevel::Argument::PrimitiveArgument(code_string);
1903 raw_arguments.push(code_primitive);
1904 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1905 lowlevel::Command::Execute { name: String::from("VTS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1906 },
1907 highlevel::Command::Vgs {
1908 level,
1909 } => {
1910 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1911 let level_string = i64::to_string(&level);
1912 let level_primitive = lowlevel::Argument::PrimitiveArgument(level_string);
1913 raw_arguments.push(level_primitive);
1914 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1915 lowlevel::Command::Execute { name: String::from("VGS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1916 },
1917 highlevel::Command::Vgm {
1918 level,
1919 } => {
1920 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1921 let level_string = i64::to_string(&level);
1922 let level_primitive = lowlevel::Argument::PrimitiveArgument(level_string);
1923 raw_arguments.push(level_primitive);
1924 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1925 lowlevel::Command::Execute { name: String::from("VGM"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1926 },
1927 highlevel::Command::Bia {
1928 indrep,
1929 } => {
1930 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1931 for indrep_element in indrep.into_iter() {
1932 match indrep_element {
1933 None => {
1934 raw_arguments.push(lowlevel::Argument::PrimitiveArgument(String::new()));
1935 }
1936 Some(indrep_element_unwrapped) => {
1937 let indrep_element_unwrapped_string_int = if *indrep_element_unwrapped { 1 } else { 0 };
1938 let indrep_element_unwrapped_string = i64::to_string(&indrep_element_unwrapped_string_int);
1939 let indrep_element_primitive = lowlevel::Argument::PrimitiveArgument(indrep_element_unwrapped_string);
1940 raw_arguments.push(indrep_element_primitive);
1941 }
1942 }
1943 }
1944 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1945 lowlevel::Command::Execute { name: String::from("BIA"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1946 },
1947 highlevel::Command::Answer { } => {
1948 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1949 lowlevel::Command::Execute { name: String::from("A"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1950 },
1951 highlevel::Command::Chup { } => {
1952 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1953 lowlevel::Command::Execute { name: String::from("CHUP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1954 },
1955 highlevel::Command::Chld {
1956 command,
1957 } => {
1958 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1959 let command_string = command.clone();
1960 let command_primitive = lowlevel::Argument::PrimitiveArgument(command_string);
1961 raw_arguments.push(command_primitive);
1962 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1963 lowlevel::Command::Execute { name: String::from("CHLD"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1964 },
1965 highlevel::Command::AtdNumber {
1966 number,
1967 } => {
1968 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1969 let number_string = number.clone();
1970 let number_primitive = lowlevel::Argument::PrimitiveArgument(number_string);
1971 raw_arguments.push(number_primitive);
1972 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1973 lowlevel::Command::Execute { name: String::from("D"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: Some(String::from(";")) } }
1974 },
1975 highlevel::Command::AtdMemory {
1976 location,
1977 } => {
1978 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1979 let location_string = location.clone();
1980 let location_primitive = lowlevel::Argument::PrimitiveArgument(location_string);
1981 raw_arguments.push(location_primitive);
1982 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1983 lowlevel::Command::Execute { name: String::from("D"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(">")), arguments, terminator: Some(String::from(";")) } }
1984 },
1985 highlevel::Command::Bldn { } => {
1986 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1987 lowlevel::Command::Execute { name: String::from("BLDN"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1988 },
1989 }
1990}
1991
1992pub fn lower_success(highlevel: &highlevel::Success) -> lowlevel::Response {
1993 match highlevel {
1994 highlevel::Success::Test { } => {
1995 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1996 lowlevel::Response::Success { name: String::from("TEST"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
1997 },
1998 highlevel::Success::Testnod { } => {
1999 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
2000 lowlevel::Response::Success { name: String::from("TESTNOD"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
2001 },
2002 highlevel::Success::TestResponse { } => {
2003 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
2004 lowlevel::Response::Success { name: String::from("TESTN"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2005 },
2006 highlevel::Success::Testext { } => {
2007 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
2008 lowlevel::Response::Success { name: String::from("TESTEXT"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2009 },
2010 highlevel::Success::Testextnod { } => {
2011 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
2012 lowlevel::Response::Success { name: String::from("TESTEXTNOD"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
2013 },
2014 highlevel::Success::Testi {
2015 field,
2016 } => {
2017 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2018 let field_string = i64::to_string(&field);
2019 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
2020 raw_arguments.push(field_primitive);
2021 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2022 lowlevel::Response::Success { name: String::from("TESTI"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2023 },
2024 highlevel::Success::Testinod {
2025 field,
2026 } => {
2027 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2028 let field_string = i64::to_string(&field);
2029 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
2030 raw_arguments.push(field_primitive);
2031 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2032 lowlevel::Response::Success { name: String::from("TESTINOD"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
2033 },
2034 highlevel::Success::Testic {
2035 field,
2036 } => {
2037 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2038 let field_string = i64::to_string(&field);
2039 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
2040 raw_arguments.push(field_primitive);
2041 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2042 lowlevel::Response::Success { name: String::from("TESTIC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2043 },
2044 highlevel::Success::Tests {
2045 field,
2046 } => {
2047 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2048 let field_string = field.clone();
2049 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
2050 raw_arguments.push(field_primitive);
2051 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2052 lowlevel::Response::Success { name: String::from("TESTS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2053 },
2054 highlevel::Success::Testsi {
2055 field1,
2056 field2,
2057 } => {
2058 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2059 let field1_string = field1.clone();
2060 let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
2061 raw_arguments.push(field1_primitive);
2062 let field2_string = i64::to_string(&field2);
2063 let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
2064 raw_arguments.push(field2_primitive);
2065 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2066 lowlevel::Response::Success { name: String::from("TESTSI"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2067 },
2068 highlevel::Success::Testsic {
2069 field1,
2070 field2,
2071 } => {
2072 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2073 let field1_string = field1.clone();
2074 let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
2075 raw_arguments.push(field1_primitive);
2076 let field2_string = i64::to_string(&field2);
2077 let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
2078 raw_arguments.push(field2_primitive);
2079 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2080 lowlevel::Response::Success { name: String::from("TESTSIC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2081 },
2082 highlevel::Success::Testio {
2083 field1,
2084 field2,
2085 } => {
2086 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2087 let field1_string = i64::to_string(&field1);
2088 let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
2089 raw_arguments.push(field1_primitive);
2090 match field2 {
2091 None => {}
2092 Some(field2_unwrapped) => {
2093 let field2_unwrapped_string = i64::to_string(&field2_unwrapped);
2094 let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_unwrapped_string);
2095 raw_arguments.push(field2_primitive);
2096 }
2097 }
2098 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2099 lowlevel::Response::Success { name: String::from("TESTIO"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2100 },
2101 highlevel::Success::Testioo {
2102 field1,
2103 field2,
2104 field3,
2105 } => {
2106 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2107 let field1_string = i64::to_string(&field1);
2108 let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
2109 raw_arguments.push(field1_primitive);
2110 match field2 {
2111 None => {}
2112 Some(field2_unwrapped) => {
2113 let field2_unwrapped_string = i64::to_string(&field2_unwrapped);
2114 let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_unwrapped_string);
2115 raw_arguments.push(field2_primitive);
2116 }
2117 }
2118 match field3 {
2119 None => {}
2120 Some(field3_unwrapped) => {
2121 let field3_unwrapped_string = field3_unwrapped.clone();
2122 let field3_primitive = lowlevel::Argument::PrimitiveArgument(field3_unwrapped_string);
2123 raw_arguments.push(field3_primitive);
2124 }
2125 }
2126 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2127 lowlevel::Response::Success { name: String::from("TESTIOO"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2128 },
2129 highlevel::Success::Testl {
2130 field,
2131 } => {
2132 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2133 for field_element in field.into_iter() {
2134 let field_element_string = i64::to_string(&field_element);
2135 let field_element_primitive = lowlevel::Argument::PrimitiveArgument(field_element_string);
2136 raw_arguments.push(field_element_primitive);
2137 }
2138 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2139 lowlevel::Response::Success { name: String::from("TESTL"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2140 },
2141 highlevel::Success::Testol {
2142 field,
2143 } => {
2144 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2145 for field_element in field.into_iter() {
2146 match field_element {
2147 None => {
2148 raw_arguments.push(lowlevel::Argument::PrimitiveArgument(String::new()));
2149 }
2150 Some(field_element_unwrapped) => {
2151 let field_element_unwrapped_string = i64::to_string(&field_element_unwrapped);
2152 let field_element_primitive = lowlevel::Argument::PrimitiveArgument(field_element_unwrapped_string);
2153 raw_arguments.push(field_element_primitive);
2154 }
2155 }
2156 }
2157 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2158 lowlevel::Response::Success { name: String::from("TESTOL"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2159 },
2160 highlevel::Success::Testm {
2161 field,
2162 } => {
2163 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2164 for (field_typed_key, field_typed_value) in field {
2165 let field_primitive_key = i64::to_string(&field_typed_key);
2166 let field_primitive_value = field_typed_value.clone();
2167 let field_untyped_pair = lowlevel::Argument::KeyValueArgument { key: field_primitive_key, value: field_primitive_value };
2168 raw_arguments.push(field_untyped_pair);
2169 }
2170 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2171 lowlevel::Response::Success { name: String::from("TESTM"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2172 },
2173 highlevel::Success::Testp {
2174 field,
2175 } => {
2176 let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
2177 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2178 let field_string = i64::to_string(&field);
2179 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
2180 raw_arguments_inner.push(field_primitive);
2181 raw_arguments_outer.push(raw_arguments_inner);
2182 let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
2183 lowlevel::Response::Success { name: String::from("TESTP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2184 },
2185 highlevel::Success::Testpp {
2186 field1,
2187 field2,
2188 field3,
2189 } => {
2190 let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
2191 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2192 let field1_string = i64::to_string(&field1);
2193 let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
2194 raw_arguments_inner.push(field1_primitive);
2195 raw_arguments_outer.push(raw_arguments_inner);
2196 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2197 let field2_string = i64::to_string(&field2);
2198 let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
2199 raw_arguments_inner.push(field2_primitive);
2200 let field3_string = field3.clone();
2201 let field3_primitive = lowlevel::Argument::PrimitiveArgument(field3_string);
2202 raw_arguments_inner.push(field3_primitive);
2203 raw_arguments_outer.push(raw_arguments_inner);
2204 let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
2205 lowlevel::Response::Success { name: String::from("TESTPP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2206 },
2207 highlevel::Success::Testpmpil {
2208 field1,
2209 field2,
2210 field3,
2211 } => {
2212 let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
2213 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2214 for (field1_typed_key, field1_typed_value) in field1 {
2215 let field1_primitive_key = i64::to_string(&field1_typed_key);
2216 let field1_primitive_value = field1_typed_value.clone();
2217 let field1_untyped_pair = lowlevel::Argument::KeyValueArgument { key: field1_primitive_key, value: field1_primitive_value };
2218 raw_arguments_inner.push(field1_untyped_pair);
2219 }
2220 raw_arguments_outer.push(raw_arguments_inner);
2221 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2222 let field2_string = i64::to_string(&field2);
2223 let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
2224 raw_arguments_inner.push(field2_primitive);
2225 for field3_element in field3.into_iter() {
2226 let field3_element_string = i64::to_string(&field3_element);
2227 let field3_element_primitive = lowlevel::Argument::PrimitiveArgument(field3_element_string);
2228 raw_arguments_inner.push(field3_element_primitive);
2229 }
2230 raw_arguments_outer.push(raw_arguments_inner);
2231 let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
2232 lowlevel::Response::Success { name: String::from("TESTPMPIL"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2233 },
2234 highlevel::Success::SameOne {
2235 field,
2236 } => {
2237 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2238 let field_string = i64::to_string(&field);
2239 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
2240 raw_arguments.push(field_primitive);
2241 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2242 lowlevel::Response::Success { name: String::from("SAME"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2243 },
2244 highlevel::Success::SameTwo {
2245 field,
2246 } => {
2247 let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
2248 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2249 let field_string = i64::to_string(&field);
2250 let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
2251 raw_arguments_inner.push(field_primitive);
2252 raw_arguments_outer.push(raw_arguments_inner);
2253 let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
2254 lowlevel::Response::Success { name: String::from("SAME"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2255 },
2256 highlevel::Success::Brsf {
2257 features,
2258 } => {
2259 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2260 let features_string = i64::to_string(&features);
2261 let features_primitive = lowlevel::Argument::PrimitiveArgument(features_string);
2262 raw_arguments.push(features_primitive);
2263 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2264 lowlevel::Response::Success { name: String::from("BRSF"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2265 },
2266 highlevel::Success::CindRead {
2267 ordered_values,
2268 } => {
2269 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2270 for ordered_values_element in ordered_values.into_iter() {
2271 let ordered_values_element_string = i64::to_string(&ordered_values_element);
2272 let ordered_values_element_primitive = lowlevel::Argument::PrimitiveArgument(ordered_values_element_string);
2273 raw_arguments.push(ordered_values_element_primitive);
2274 }
2275 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2276 lowlevel::Response::Success { name: String::from("CIND"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2277 },
2278 highlevel::Success::Clcc {
2279 index,
2280 direction,
2281 status,
2282 mode,
2283 multiparty,
2284 number,
2285 ty,
2286 alpha,
2287 priority,
2288 } => {
2289 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2290 let index_string = i64::to_string(&index);
2291 let index_primitive = lowlevel::Argument::PrimitiveArgument(index_string);
2292 raw_arguments.push(index_primitive);
2293 let direction_string = i64::to_string(&direction);
2294 let direction_primitive = lowlevel::Argument::PrimitiveArgument(direction_string);
2295 raw_arguments.push(direction_primitive);
2296 let status_string = i64::to_string(&status);
2297 let status_primitive = lowlevel::Argument::PrimitiveArgument(status_string);
2298 raw_arguments.push(status_primitive);
2299 let mode_string = i64::to_string(&mode);
2300 let mode_primitive = lowlevel::Argument::PrimitiveArgument(mode_string);
2301 raw_arguments.push(mode_primitive);
2302 let multiparty_string = i64::to_string(&multiparty);
2303 let multiparty_primitive = lowlevel::Argument::PrimitiveArgument(multiparty_string);
2304 raw_arguments.push(multiparty_primitive);
2305 match number {
2306 None => {}
2307 Some(number_unwrapped) => {
2308 let number_unwrapped_string = number_unwrapped.clone();
2309 let number_primitive = lowlevel::Argument::PrimitiveArgument(number_unwrapped_string);
2310 raw_arguments.push(number_primitive);
2311 }
2312 }
2313 match ty {
2314 None => {}
2315 Some(ty_unwrapped) => {
2316 let ty_unwrapped_string = i64::to_string(&ty_unwrapped);
2317 let ty_primitive = lowlevel::Argument::PrimitiveArgument(ty_unwrapped_string);
2318 raw_arguments.push(ty_primitive);
2319 }
2320 }
2321 match alpha {
2322 None => {}
2323 Some(alpha_unwrapped) => {
2324 let alpha_unwrapped_string = alpha_unwrapped.clone();
2325 let alpha_primitive = lowlevel::Argument::PrimitiveArgument(alpha_unwrapped_string);
2326 raw_arguments.push(alpha_primitive);
2327 }
2328 }
2329 match priority {
2330 None => {}
2331 Some(priority_unwrapped) => {
2332 let priority_unwrapped_string = i64::to_string(&priority_unwrapped);
2333 let priority_primitive = lowlevel::Argument::PrimitiveArgument(priority_unwrapped_string);
2334 raw_arguments.push(priority_primitive);
2335 }
2336 }
2337 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2338 lowlevel::Response::Success { name: String::from("CLCC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2339 },
2340 highlevel::Success::Bcs {
2341 codec,
2342 } => {
2343 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2344 let codec_string = i64::to_string(&codec);
2345 let codec_primitive = lowlevel::Argument::PrimitiveArgument(codec_string);
2346 raw_arguments.push(codec_primitive);
2347 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2348 lowlevel::Response::Success { name: String::from("BCS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2349 },
2350 highlevel::Success::BindList {
2351 indicators,
2352 } => {
2353 let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
2354 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2355 for indicators_element in indicators.into_iter() {
2356 let indicators_element_string_int = *indicators_element as i64;
2357 let indicators_element_string = i64::to_string(&indicators_element_string_int);
2358 let indicators_element_primitive = lowlevel::Argument::PrimitiveArgument(indicators_element_string);
2359 raw_arguments_inner.push(indicators_element_primitive);
2360 }
2361 raw_arguments_outer.push(raw_arguments_inner);
2362 let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
2363 lowlevel::Response::Success { name: String::from("BIND"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2364 },
2365 highlevel::Success::BindStatus {
2366 anum,
2367 state,
2368 } => {
2369 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2370 let anum_string_int = *anum as i64;
2371 let anum_string = i64::to_string(&anum_string_int);
2372 let anum_primitive = lowlevel::Argument::PrimitiveArgument(anum_string);
2373 raw_arguments.push(anum_primitive);
2374 let state_string_int = if *state { 1 } else { 0 };
2375 let state_string = i64::to_string(&state_string_int);
2376 let state_primitive = lowlevel::Argument::PrimitiveArgument(state_string);
2377 raw_arguments.push(state_primitive);
2378 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2379 lowlevel::Response::Success { name: String::from("BIND"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2380 },
2381 highlevel::Success::Chld {
2382 commands,
2383 } => {
2384 let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
2385 let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2386 for commands_element in commands.into_iter() {
2387 let commands_element_string = commands_element.clone();
2388 let commands_element_primitive = lowlevel::Argument::PrimitiveArgument(commands_element_string);
2389 raw_arguments_inner.push(commands_element_primitive);
2390 }
2391 raw_arguments_outer.push(raw_arguments_inner);
2392 let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
2393 lowlevel::Response::Success { name: String::from("CHLD"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2394 },
2395 highlevel::Success::Cops {
2396 format,
2397 zero,
2398 operator,
2399 } => {
2400 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2401 let format_string_int = *format as i64;
2402 let format_string = i64::to_string(&format_string_int);
2403 let format_primitive = lowlevel::Argument::PrimitiveArgument(format_string);
2404 raw_arguments.push(format_primitive);
2405 let zero_string = i64::to_string(&zero);
2406 let zero_primitive = lowlevel::Argument::PrimitiveArgument(zero_string);
2407 raw_arguments.push(zero_primitive);
2408 let operator_string = operator.clone();
2409 let operator_primitive = lowlevel::Argument::PrimitiveArgument(operator_string);
2410 raw_arguments.push(operator_primitive);
2411 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2412 lowlevel::Response::Success { name: String::from("COPS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2413 },
2414 highlevel::Success::Clip {
2415 number,
2416 ty,
2417 } => {
2418 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2419 let number_string = number.clone();
2420 let number_primitive = lowlevel::Argument::PrimitiveArgument(number_string);
2421 raw_arguments.push(number_primitive);
2422 let ty_string = i64::to_string(&ty);
2423 let ty_primitive = lowlevel::Argument::PrimitiveArgument(ty_string);
2424 raw_arguments.push(ty_primitive);
2425 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2426 lowlevel::Response::Success { name: String::from("CLIP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2427 },
2428 highlevel::Success::Cnum {
2429 alpha,
2430 number,
2431 ty,
2432 speed,
2433 service,
2434 } => {
2435 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2436 let alpha_string = alpha.clone();
2437 let alpha_primitive = lowlevel::Argument::PrimitiveArgument(alpha_string);
2438 raw_arguments.push(alpha_primitive);
2439 let number_string = number.clone();
2440 let number_primitive = lowlevel::Argument::PrimitiveArgument(number_string);
2441 raw_arguments.push(number_primitive);
2442 let ty_string = i64::to_string(&ty);
2443 let ty_primitive = lowlevel::Argument::PrimitiveArgument(ty_string);
2444 raw_arguments.push(ty_primitive);
2445 let speed_string = speed.clone();
2446 let speed_primitive = lowlevel::Argument::PrimitiveArgument(speed_string);
2447 raw_arguments.push(speed_primitive);
2448 let service_string = i64::to_string(&service);
2449 let service_primitive = lowlevel::Argument::PrimitiveArgument(service_string);
2450 raw_arguments.push(service_primitive);
2451 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2452 lowlevel::Response::Success { name: String::from("CNUM"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2453 },
2454 highlevel::Success::Vgs {
2455 level,
2456 } => {
2457 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2458 let level_string = i64::to_string(&level);
2459 let level_primitive = lowlevel::Argument::PrimitiveArgument(level_string);
2460 raw_arguments.push(level_primitive);
2461 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2462 lowlevel::Response::Success { name: String::from("VGS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2463 },
2464 highlevel::Success::Vgm {
2465 level,
2466 } => {
2467 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2468 let level_string = i64::to_string(&level);
2469 let level_primitive = lowlevel::Argument::PrimitiveArgument(level_string);
2470 raw_arguments.push(level_primitive);
2471 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2472 lowlevel::Response::Success { name: String::from("VGM"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2473 },
2474 highlevel::Success::Ciev {
2475 ind,
2476 value,
2477 } => {
2478 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2479 let ind_string = i64::to_string(&ind);
2480 let ind_primitive = lowlevel::Argument::PrimitiveArgument(ind_string);
2481 raw_arguments.push(ind_primitive);
2482 let value_string = i64::to_string(&value);
2483 let value_primitive = lowlevel::Argument::PrimitiveArgument(value_string);
2484 raw_arguments.push(value_primitive);
2485 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2486 lowlevel::Response::Success { name: String::from("CIEV"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2487 },
2488 highlevel::Success::Ccwa {
2489 number,
2490 ty,
2491 } => {
2492 let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2493 let number_string = number.clone();
2494 let number_primitive = lowlevel::Argument::PrimitiveArgument(number_string);
2495 raw_arguments.push(number_primitive);
2496 let ty_string = i64::to_string(&ty);
2497 let ty_primitive = lowlevel::Argument::PrimitiveArgument(ty_string);
2498 raw_arguments.push(ty_primitive);
2499 let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2500 lowlevel::Response::Success { name: String::from("CCWA"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2501 },
2502 highlevel::Success::Ring { } => {
2503 let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
2504 lowlevel::Response::Success { name: String::from("RING"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
2505 },
2506 }
2507}
2508