at_commands/generated/
translate.rs

1// Copyright 2021 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// This file is generated code.  Please do not edit it; instead edit the AT
6// command definitions used to generate it.
7
8use 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
765// Clients are responsible for ensuring this is only called with lowlevel::Result::Success.
766pub 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 == "TESTL"
923            && delimiter == &Some(String::from(":"))
924            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
925        => {
926            let arg_vec = extract_vec_from_args(&arguments)?;
927            let mut field = Vec::new();
928            for field_element_raw in arg_vec[0..].into_iter() {
929                let field_element_option = if field_element_raw.is_empty() { None } else { Some(field_element_raw) };
930                let field_element_option_unwrapped = field_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
931                let field_element_option_unwrapped_primitive = extract_primitive_from_field(field_element_option_unwrapped, &arguments)?;
932                let field_element = extract_int_from_primitive(field_element_option_unwrapped_primitive, &arguments)?;
933                field.push(field_element);
934            }
935            Ok(highlevel::Success::Testl {
936                field,
937            })
938        },
939        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
940            name == "TESTOL"
941            && delimiter == &Some(String::from(":"))
942            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
943        => {
944            let arg_vec = extract_vec_from_args(&arguments)?;
945            let mut field = Vec::new();
946            for field_element_raw in arg_vec[0..].into_iter() {
947                let field_element_option = if field_element_raw.is_empty() { None } else { Some(field_element_raw) };
948                let field_element = match field_element_option {
949                    Some(field_element_option_unwrapped) if !field_element_option_unwrapped.is_empty() => {
950                        let field_element_option_unwrapped_primitive = extract_primitive_from_field(field_element_option_unwrapped, &arguments)?;
951                        let field_element_unwrapped = extract_int_from_primitive(field_element_option_unwrapped_primitive, &arguments)?;
952                        Some(field_element_unwrapped)
953                    }
954                    _ => None,
955                };
956                field.push(field_element);
957            }
958            Ok(highlevel::Success::Testol {
959                field,
960            })
961        },
962        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
963            name == "TESTM"
964            && delimiter == &Some(String::from(":"))
965            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
966        => {
967            let arg_vec = extract_vec_from_args(&arguments)?;
968            let mut field = std::collections::HashMap::new();
969            for field_element in arg_vec[0..].into_iter() {
970                let field_element_primitive = extract_key_from_field(field_element, &arguments)?;
971                let field_key = extract_int_from_primitive(field_element_primitive, &arguments)?;
972                let field_element_primitive = extract_value_from_field(field_element, &arguments)?;
973                let field_value = field_element_primitive.clone();
974                let _ = field.insert(field_key, field_value);
975            }   
976            Ok(highlevel::Success::Testm {
977                field,
978            })
979        },
980        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
981            name == "TESTP"
982            && delimiter == &Some(String::from(":"))
983            &&  matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
984        => {
985            let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
986            let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
987            let field_option = arg_vec.get(0);
988            let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
989            let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
990            let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
991            Ok(highlevel::Success::Testp {
992                field,
993            })
994        },
995        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
996            name == "TESTPP"
997            && delimiter == &Some(String::from(":"))
998            &&  matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
999        => {
1000            let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
1001            let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1002            let field1_option = arg_vec.get(0);
1003            let field1_option_unwrapped = field1_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1004            let field1_option_unwrapped_primitive = extract_primitive_from_field(field1_option_unwrapped, &arguments)?;
1005            let field1 = extract_int_from_primitive(field1_option_unwrapped_primitive, &arguments)?;
1006            let arg_vec = arg_vec_vec.get(1).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1007            let field2_option = arg_vec.get(0);
1008            let field2_option_unwrapped = field2_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1009            let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
1010            let field2 = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
1011            let field3_option = arg_vec.get(1);
1012            let field3_option_unwrapped = field3_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1013            let field3_option_unwrapped_primitive = extract_primitive_from_field(field3_option_unwrapped, &arguments)?;
1014            let field3 = field3_option_unwrapped_primitive.clone();
1015            Ok(highlevel::Success::Testpp {
1016                field1,
1017                field2,
1018                field3,
1019            })
1020        },
1021        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1022            name == "TESTPMPIL"
1023            && delimiter == &Some(String::from(":"))
1024            &&  matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
1025        => {
1026            let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
1027            let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1028            let mut field1 = std::collections::HashMap::new();
1029            for field1_element in arg_vec[0..].into_iter() {
1030                let field1_element_primitive = extract_key_from_field(field1_element, &arguments)?;
1031                let field1_key = extract_int_from_primitive(field1_element_primitive, &arguments)?;
1032                let field1_element_primitive = extract_value_from_field(field1_element, &arguments)?;
1033                let field1_value = field1_element_primitive.clone();
1034                let _ = field1.insert(field1_key, field1_value);
1035            }   
1036            let arg_vec = arg_vec_vec.get(1).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1037            let field2_option = arg_vec.get(0);
1038            let field2_option_unwrapped = field2_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1039            let field2_option_unwrapped_primitive = extract_primitive_from_field(field2_option_unwrapped, &arguments)?;
1040            let field2 = extract_int_from_primitive(field2_option_unwrapped_primitive, &arguments)?;
1041            let mut field3 = Vec::new();
1042            for field3_element_raw in arg_vec[1..].into_iter() {
1043                let field3_element_option = if field3_element_raw.is_empty() { None } else { Some(field3_element_raw) };
1044                let field3_element_option_unwrapped = field3_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1045                let field3_element_option_unwrapped_primitive = extract_primitive_from_field(field3_element_option_unwrapped, &arguments)?;
1046                let field3_element = extract_int_from_primitive(field3_element_option_unwrapped_primitive, &arguments)?;
1047                field3.push(field3_element);
1048            }
1049            Ok(highlevel::Success::Testpmpil {
1050                field1,
1051                field2,
1052                field3,
1053            })
1054        },
1055        lowlevel::Response::Success { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1056            name == "SAME"
1057            && delimiter == &Some(String::from(":"))
1058            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1059        => {
1060            let arg_vec = extract_vec_from_args(&arguments)?;
1061            let field_option = arg_vec.get(0);
1062            let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1063            let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
1064            let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
1065            Ok(highlevel::Success::SameOne {
1066                field,
1067            })
1068        },
1069        lowlevel::Response::Success { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1070            name == "SAME"
1071            && delimiter == &Some(String::from(":"))
1072            &&  matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
1073        => {
1074            let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
1075            let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1076            let field_option = arg_vec.get(0);
1077            let field_option_unwrapped = field_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1078            let field_option_unwrapped_primitive = extract_primitive_from_field(field_option_unwrapped, &arguments)?;
1079            let field = extract_int_from_primitive(field_option_unwrapped_primitive, &arguments)?;
1080            Ok(highlevel::Success::SameTwo {
1081                field,
1082            })
1083        },
1084        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1085            name == "BRSF"
1086            && delimiter == &Some(String::from(":"))
1087            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1088        => {
1089            let arg_vec = extract_vec_from_args(&arguments)?;
1090            let features_option = arg_vec.get(0);
1091            let features_option_unwrapped = features_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1092            let features_option_unwrapped_primitive = extract_primitive_from_field(features_option_unwrapped, &arguments)?;
1093            let features = extract_int_from_primitive(features_option_unwrapped_primitive, &arguments)?;
1094            Ok(highlevel::Success::Brsf {
1095                features,
1096            })
1097        },
1098        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1099            name == "CIND"
1100            && delimiter == &Some(String::from(":"))
1101            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1102        => {
1103            let arg_vec = extract_vec_from_args(&arguments)?;
1104            let service_option = arg_vec.get(0);
1105            let service_option_unwrapped = service_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1106            let service_option_unwrapped_primitive = extract_primitive_from_field(service_option_unwrapped, &arguments)?;
1107            let service_option_unwrapped_int = extract_int_from_primitive(service_option_unwrapped_primitive, &arguments)?;
1108            let service = service_option_unwrapped_int != 0;
1109            let call_option = arg_vec.get(1);
1110            let call_option_unwrapped = call_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1111            let call_option_unwrapped_primitive = extract_primitive_from_field(call_option_unwrapped, &arguments)?;
1112            let call_option_unwrapped_int = extract_int_from_primitive(call_option_unwrapped_primitive, &arguments)?;
1113            let call = call_option_unwrapped_int != 0;
1114            let callsetup_option = arg_vec.get(2);
1115            let callsetup_option_unwrapped = callsetup_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1116            let callsetup_option_unwrapped_primitive = extract_primitive_from_field(callsetup_option_unwrapped, &arguments)?;
1117            let callsetup = extract_int_from_primitive(callsetup_option_unwrapped_primitive, &arguments)?;
1118            let callheld_option = arg_vec.get(3);
1119            let callheld_option_unwrapped = callheld_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1120            let callheld_option_unwrapped_primitive = extract_primitive_from_field(callheld_option_unwrapped, &arguments)?;
1121            let callheld = extract_int_from_primitive(callheld_option_unwrapped_primitive, &arguments)?;
1122            let signal_option = arg_vec.get(4);
1123            let signal_option_unwrapped = signal_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1124            let signal_option_unwrapped_primitive = extract_primitive_from_field(signal_option_unwrapped, &arguments)?;
1125            let signal = extract_int_from_primitive(signal_option_unwrapped_primitive, &arguments)?;
1126            let roam_option = arg_vec.get(5);
1127            let roam_option_unwrapped = roam_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1128            let roam_option_unwrapped_primitive = extract_primitive_from_field(roam_option_unwrapped, &arguments)?;
1129            let roam_option_unwrapped_int = extract_int_from_primitive(roam_option_unwrapped_primitive, &arguments)?;
1130            let roam = roam_option_unwrapped_int != 0;
1131            let battchg_option = arg_vec.get(6);
1132            let battchg_option_unwrapped = battchg_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1133            let battchg_option_unwrapped_primitive = extract_primitive_from_field(battchg_option_unwrapped, &arguments)?;
1134            let battchg = extract_int_from_primitive(battchg_option_unwrapped_primitive, &arguments)?;
1135            Ok(highlevel::Success::Cind {
1136                service,
1137                call,
1138                callsetup,
1139                callheld,
1140                signal,
1141                roam,
1142                battchg,
1143            })
1144        },
1145        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1146            name == "CLCC"
1147            && delimiter == &Some(String::from(":"))
1148            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1149        => {
1150            let arg_vec = extract_vec_from_args(&arguments)?;
1151            let index_option = arg_vec.get(0);
1152            let index_option_unwrapped = index_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1153            let index_option_unwrapped_primitive = extract_primitive_from_field(index_option_unwrapped, &arguments)?;
1154            let index = extract_int_from_primitive(index_option_unwrapped_primitive, &arguments)?;
1155            let dir_option = arg_vec.get(1);
1156            let dir_option_unwrapped = dir_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1157            let dir_option_unwrapped_primitive = extract_primitive_from_field(dir_option_unwrapped, &arguments)?;
1158            let dir = extract_int_from_primitive(dir_option_unwrapped_primitive, &arguments)?;
1159            let status_option = arg_vec.get(2);
1160            let status_option_unwrapped = status_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1161            let status_option_unwrapped_primitive = extract_primitive_from_field(status_option_unwrapped, &arguments)?;
1162            let status = extract_int_from_primitive(status_option_unwrapped_primitive, &arguments)?;
1163            let mode_option = arg_vec.get(3);
1164            let mode_option_unwrapped = mode_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1165            let mode_option_unwrapped_primitive = extract_primitive_from_field(mode_option_unwrapped, &arguments)?;
1166            let mode = extract_int_from_primitive(mode_option_unwrapped_primitive, &arguments)?;
1167            let mpty_option = arg_vec.get(4);
1168            let mpty_option_unwrapped = mpty_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1169            let mpty_option_unwrapped_primitive = extract_primitive_from_field(mpty_option_unwrapped, &arguments)?;
1170            let mpty = extract_int_from_primitive(mpty_option_unwrapped_primitive, &arguments)?;
1171            let number_option = arg_vec.get(5);
1172            let number_option_unwrapped = number_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1173            let number_option_unwrapped_primitive = extract_primitive_from_field(number_option_unwrapped, &arguments)?;
1174            let number = number_option_unwrapped_primitive.clone();
1175            let ty_option = arg_vec.get(6);
1176            let ty_option_unwrapped = ty_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1177            let ty_option_unwrapped_primitive = extract_primitive_from_field(ty_option_unwrapped, &arguments)?;
1178            let ty = extract_int_from_primitive(ty_option_unwrapped_primitive, &arguments)?;
1179            Ok(highlevel::Success::Clcc {
1180                index,
1181                dir,
1182                status,
1183                mode,
1184                mpty,
1185                number,
1186                ty,
1187            })
1188        },
1189        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1190            name == "BCS"
1191            && delimiter == &Some(String::from(":"))
1192            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1193        => {
1194            let arg_vec = extract_vec_from_args(&arguments)?;
1195            let codec_option = arg_vec.get(0);
1196            let codec_option_unwrapped = codec_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1197            let codec_option_unwrapped_primitive = extract_primitive_from_field(codec_option_unwrapped, &arguments)?;
1198            let codec = extract_int_from_primitive(codec_option_unwrapped_primitive, &arguments)?;
1199            Ok(highlevel::Success::Bcs {
1200                codec,
1201            })
1202        },
1203        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1204            name == "BIND"
1205            && delimiter == &Some(String::from(":"))
1206            &&  matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
1207        => {
1208            let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
1209            let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1210            let mut indicators = Vec::new();
1211            for indicators_element_raw in arg_vec[0..].into_iter() {
1212                let indicators_element_option = if indicators_element_raw.is_empty() { None } else { Some(indicators_element_raw) };
1213                let indicators_element_option_unwrapped = indicators_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1214                let indicators_element_option_unwrapped_primitive = extract_primitive_from_field(indicators_element_option_unwrapped, &arguments)?;
1215                let indicators_element_option_unwrapped_int = extract_int_from_primitive(indicators_element_option_unwrapped_primitive, &arguments)?;
1216                let indicators_element = super::types::BluetoothHFIndicator::from_i64(indicators_element_option_unwrapped_int).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1217                indicators.push(indicators_element);
1218            }
1219            Ok(highlevel::Success::BindList {
1220                indicators,
1221            })
1222        },
1223        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1224            name == "BIND"
1225            && delimiter == &Some(String::from(":"))
1226            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1227        => {
1228            let arg_vec = extract_vec_from_args(&arguments)?;
1229            let anum_option = arg_vec.get(0);
1230            let anum_option_unwrapped = anum_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1231            let anum_option_unwrapped_primitive = extract_primitive_from_field(anum_option_unwrapped, &arguments)?;
1232            let anum_option_unwrapped_int = extract_int_from_primitive(anum_option_unwrapped_primitive, &arguments)?;
1233            let anum = super::types::BluetoothHFIndicator::from_i64(anum_option_unwrapped_int).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1234            let state_option = arg_vec.get(1);
1235            let state_option_unwrapped = state_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1236            let state_option_unwrapped_primitive = extract_primitive_from_field(state_option_unwrapped, &arguments)?;
1237            let state_option_unwrapped_int = extract_int_from_primitive(state_option_unwrapped_primitive, &arguments)?;
1238            let state = state_option_unwrapped_int != 0;
1239            Ok(highlevel::Success::BindStatus {
1240                anum,
1241                state,
1242            })
1243        },
1244        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1245            name == "CHLD"
1246            && delimiter == &Some(String::from(":"))
1247            &&  matches!(arguments, lowlevel::Arguments::ParenthesisDelimitedArgumentLists(_))
1248        => {
1249            let arg_vec_vec = extract_vec_vec_from_args(&arguments)?;
1250            let arg_vec = arg_vec_vec.get(0).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1251            let mut commands = Vec::new();
1252            for commands_element_raw in arg_vec[0..].into_iter() {
1253                let commands_element_option = if commands_element_raw.is_empty() { None } else { Some(commands_element_raw) };
1254                let commands_element_option_unwrapped = commands_element_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1255                let commands_element_option_unwrapped_primitive = extract_primitive_from_field(commands_element_option_unwrapped, &arguments)?;
1256                let commands_element = commands_element_option_unwrapped_primitive.clone();
1257                commands.push(commands_element);
1258            }
1259            Ok(highlevel::Success::Chld {
1260                commands,
1261            })
1262        },
1263        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1264            name == "COPS"
1265            && delimiter == &Some(String::from(":"))
1266            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1267        => {
1268            let arg_vec = extract_vec_from_args(&arguments)?;
1269            let format_option = arg_vec.get(0);
1270            let format_option_unwrapped = format_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1271            let format_option_unwrapped_primitive = extract_primitive_from_field(format_option_unwrapped, &arguments)?;
1272            let format_option_unwrapped_int = extract_int_from_primitive(format_option_unwrapped_primitive, &arguments)?;
1273            let format = super::types::NetworkOperatorNameFormat::from_i64(format_option_unwrapped_int).ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1274            let zero_option = arg_vec.get(1);
1275            let zero_option_unwrapped = zero_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1276            let zero_option_unwrapped_primitive = extract_primitive_from_field(zero_option_unwrapped, &arguments)?;
1277            let zero = extract_int_from_primitive(zero_option_unwrapped_primitive, &arguments)?;
1278            let operator_option = arg_vec.get(2);
1279            let operator_option_unwrapped = operator_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1280            let operator_option_unwrapped_primitive = extract_primitive_from_field(operator_option_unwrapped, &arguments)?;
1281            let operator = operator_option_unwrapped_primitive.clone();
1282            Ok(highlevel::Success::Cops {
1283                format,
1284                zero,
1285                operator,
1286            })
1287        },
1288        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1289            name == "CLIP"
1290            && delimiter == &Some(String::from(":"))
1291            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1292        => {
1293            let arg_vec = extract_vec_from_args(&arguments)?;
1294            let number_option = arg_vec.get(0);
1295            let number_option_unwrapped = number_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1296            let number_option_unwrapped_primitive = extract_primitive_from_field(number_option_unwrapped, &arguments)?;
1297            let number = number_option_unwrapped_primitive.clone();
1298            let ty_option = arg_vec.get(1);
1299            let ty_option_unwrapped = ty_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1300            let ty_option_unwrapped_primitive = extract_primitive_from_field(ty_option_unwrapped, &arguments)?;
1301            let ty = extract_int_from_primitive(ty_option_unwrapped_primitive, &arguments)?;
1302            Ok(highlevel::Success::Clip {
1303                number,
1304                ty,
1305            })
1306        },
1307        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1308            name == "CNUM"
1309            && delimiter == &Some(String::from(":"))
1310            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1311        => {
1312            let arg_vec = extract_vec_from_args(&arguments)?;
1313            let alpha_option = arg_vec.get(0);
1314            let alpha_option_unwrapped = alpha_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1315            let alpha_option_unwrapped_primitive = extract_primitive_from_field(alpha_option_unwrapped, &arguments)?;
1316            let alpha = alpha_option_unwrapped_primitive.clone();
1317            let number_option = arg_vec.get(1);
1318            let number_option_unwrapped = number_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1319            let number_option_unwrapped_primitive = extract_primitive_from_field(number_option_unwrapped, &arguments)?;
1320            let number = number_option_unwrapped_primitive.clone();
1321            let ty_option = arg_vec.get(2);
1322            let ty_option_unwrapped = ty_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1323            let ty_option_unwrapped_primitive = extract_primitive_from_field(ty_option_unwrapped, &arguments)?;
1324            let ty = extract_int_from_primitive(ty_option_unwrapped_primitive, &arguments)?;
1325            let speed_option = arg_vec.get(3);
1326            let speed_option_unwrapped = speed_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1327            let speed_option_unwrapped_primitive = extract_primitive_from_field(speed_option_unwrapped, &arguments)?;
1328            let speed = speed_option_unwrapped_primitive.clone();
1329            let service_option = arg_vec.get(4);
1330            let service_option_unwrapped = service_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1331            let service_option_unwrapped_primitive = extract_primitive_from_field(service_option_unwrapped, &arguments)?;
1332            let service = extract_int_from_primitive(service_option_unwrapped_primitive, &arguments)?;
1333            Ok(highlevel::Success::Cnum {
1334                alpha,
1335                number,
1336                ty,
1337                speed,
1338                service,
1339            })
1340        },
1341        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1342            name == "VGS"
1343            && delimiter == &Some(String::from(":"))
1344            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1345        => {
1346            let arg_vec = extract_vec_from_args(&arguments)?;
1347            let level_option = arg_vec.get(0);
1348            let level_option_unwrapped = level_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1349            let level_option_unwrapped_primitive = extract_primitive_from_field(level_option_unwrapped, &arguments)?;
1350            let level = extract_int_from_primitive(level_option_unwrapped_primitive, &arguments)?;
1351            Ok(highlevel::Success::Vgs {
1352                level,
1353            })
1354        },
1355        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1356            name == "VGM"
1357            && delimiter == &Some(String::from(":"))
1358            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1359        => {
1360            let arg_vec = extract_vec_from_args(&arguments)?;
1361            let level_option = arg_vec.get(0);
1362            let level_option_unwrapped = level_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1363            let level_option_unwrapped_primitive = extract_primitive_from_field(level_option_unwrapped, &arguments)?;
1364            let level = extract_int_from_primitive(level_option_unwrapped_primitive, &arguments)?;
1365            Ok(highlevel::Success::Vgm {
1366                level,
1367            })
1368        },
1369        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1370            name == "CIEV"
1371            && delimiter == &Some(String::from(":"))
1372            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1373        => {
1374            let arg_vec = extract_vec_from_args(&arguments)?;
1375            let ind_option = arg_vec.get(0);
1376            let ind_option_unwrapped = ind_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1377            let ind_option_unwrapped_primitive = extract_primitive_from_field(ind_option_unwrapped, &arguments)?;
1378            let ind = extract_int_from_primitive(ind_option_unwrapped_primitive, &arguments)?;
1379            let value_option = arg_vec.get(1);
1380            let value_option_unwrapped = value_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1381            let value_option_unwrapped_primitive = extract_primitive_from_field(value_option_unwrapped, &arguments)?;
1382            let value = extract_int_from_primitive(value_option_unwrapped_primitive, &arguments)?;
1383            Ok(highlevel::Success::Ciev {
1384                ind,
1385                value,
1386            })
1387        },
1388        lowlevel::Response::Success { name, is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter, arguments, .. }} if
1389            name == "CCWA"
1390            && delimiter == &Some(String::from(":"))
1391            &&  matches!(arguments, lowlevel::Arguments::ArgumentList(_))
1392        => {
1393            let arg_vec = extract_vec_from_args(&arguments)?;
1394            let number_option = arg_vec.get(0);
1395            let number_option_unwrapped = number_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1396            let number_option_unwrapped_primitive = extract_primitive_from_field(number_option_unwrapped, &arguments)?;
1397            let number = number_option_unwrapped_primitive.clone();
1398            let ty_option = arg_vec.get(1);
1399            let ty_option_unwrapped = ty_option.ok_or_else(|| DeserializeErrorCause::UnknownArguments(arguments.clone()))?;
1400            let ty_option_unwrapped_primitive = extract_primitive_from_field(ty_option_unwrapped, &arguments)?;
1401            let ty = extract_int_from_primitive(ty_option_unwrapped_primitive, &arguments)?;
1402            Ok(highlevel::Success::Ccwa {
1403                number,
1404                ty,
1405            })
1406        },
1407        lowlevel::Response::Success { name, is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter, .. }} if
1408            name == "RING"
1409            && delimiter == &None
1410        => {
1411            Ok(highlevel::Success::Ring {
1412            })
1413        },
1414        _ => Err(DeserializeErrorCause::UnknownResponse(lowlevel.clone())),
1415    }
1416}
1417
1418pub fn lower_command(highlevel: &highlevel::Command) -> lowlevel::Command {
1419    match highlevel {
1420        highlevel::Command::Testex {        } => {
1421            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1422            lowlevel::Command::Execute { name: String::from("TESTEX"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1423        },
1424        highlevel::Command::Testexext {        } => {
1425            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1426            lowlevel::Command::Execute { name: String::from("TESTEXEXT"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1427        },
1428        highlevel::Command::TestCommand {        } => {
1429            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1430            lowlevel::Command::Execute { name: String::from("TESTNEX"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1431        },
1432        highlevel::Command::Testexextfi {
1433            field,
1434        } => {
1435            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1436            let field_string = i64::to_string(&field);
1437            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1438            raw_arguments.push(field_primitive);
1439            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1440            lowlevel::Command::Execute { name: String::from("TESTEXEXTFI"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1441        },
1442        highlevel::Command::Testexextfic {
1443            field,
1444        } => {
1445            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1446            let field_string = i64::to_string(&field);
1447            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1448            raw_arguments.push(field_primitive);
1449            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1450            lowlevel::Command::Execute { name: String::from("TESTEXEXTFIC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1451        },
1452        highlevel::Command::Testnsd {
1453            field,
1454        } => {
1455            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1456            let field_string = i64::to_string(&field);
1457            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1458            raw_arguments.push(field_primitive);
1459            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1460            lowlevel::Command::Execute { name: String::from("TESTNSD"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(">")), arguments, terminator: None } }
1461        },
1462        highlevel::Command::Testnst {
1463            field,
1464        } => {
1465            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1466            let field_string = i64::to_string(&field);
1467            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1468            raw_arguments.push(field_primitive);
1469            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1470            lowlevel::Command::Execute { name: String::from("TESTNST"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: Some(String::from(";")) } }
1471        },
1472        highlevel::Command::Testnsdnst {
1473            field,
1474        } => {
1475            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1476            let field_string = i64::to_string(&field);
1477            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1478            raw_arguments.push(field_primitive);
1479            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1480            lowlevel::Command::Execute { name: String::from("TESTNSDNST"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(">")), arguments, terminator: Some(String::from(";")) } }
1481        },
1482        highlevel::Command::Testnod {
1483            field,
1484        } => {
1485            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1486            let field_string = i64::to_string(&field);
1487            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1488            raw_arguments.push(field_primitive);
1489            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1490            lowlevel::Command::Execute { name: String::from("TESTNOD"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1491        },
1492        highlevel::Command::Testexextfs {
1493            field,
1494        } => {
1495            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1496            let field_string = field.clone();
1497            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1498            raw_arguments.push(field_primitive);
1499            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1500            lowlevel::Command::Execute { name: String::from("TESTEXEXTFS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1501        },
1502        highlevel::Command::Testexextfsi {
1503            field1,
1504            field2,
1505        } => {
1506            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1507            let field1_string = field1.clone();
1508            let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
1509            raw_arguments.push(field1_primitive);
1510            let field2_string = i64::to_string(&field2);
1511            let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
1512            raw_arguments.push(field2_primitive);
1513            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1514            lowlevel::Command::Execute { name: String::from("TESTEXEXTFSI"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1515        },
1516        highlevel::Command::Testexextfsic {
1517            field1,
1518            field2,
1519        } => {
1520            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1521            let field1_string = field1.clone();
1522            let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
1523            raw_arguments.push(field1_primitive);
1524            let field2_string = i64::to_string(&field2);
1525            let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
1526            raw_arguments.push(field2_primitive);
1527            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1528            lowlevel::Command::Execute { name: String::from("TESTEXEXTFSIC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1529        },
1530        highlevel::Command::Testio {
1531            field1,
1532            field2,
1533        } => {
1534            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1535            let field1_string = i64::to_string(&field1);
1536            let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
1537            raw_arguments.push(field1_primitive);
1538            match field2 {
1539            None => {
1540                        raw_arguments.push(lowlevel::Argument::PrimitiveArgument(String::new()));
1541                }
1542                Some(field2_unwrapped) => {
1543                        let field2_unwrapped_string = i64::to_string(&field2_unwrapped);
1544                        let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_unwrapped_string);
1545                        raw_arguments.push(field2_primitive);
1546                }
1547            }
1548            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1549            lowlevel::Command::Execute { name: String::from("TESTIO"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1550        },
1551        highlevel::Command::Testl {
1552            field,
1553        } => {
1554            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1555            for field_element in field.into_iter() {
1556                    let field_element_string = i64::to_string(&field_element);
1557                    let field_element_primitive = lowlevel::Argument::PrimitiveArgument(field_element_string);
1558                    raw_arguments.push(field_element_primitive);
1559            }   
1560            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1561            lowlevel::Command::Execute { name: String::from("TESTL"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1562        },
1563        highlevel::Command::Testol {
1564            field,
1565        } => {
1566            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1567            for field_element in field.into_iter() {
1568                    match field_element {
1569                    None => {
1570                                raw_arguments.push(lowlevel::Argument::PrimitiveArgument(String::new()));
1571                        }
1572                        Some(field_element_unwrapped) => {
1573                                let field_element_unwrapped_string = i64::to_string(&field_element_unwrapped);
1574                                let field_element_primitive = lowlevel::Argument::PrimitiveArgument(field_element_unwrapped_string);
1575                                raw_arguments.push(field_element_primitive);
1576                        }
1577                    }
1578            }   
1579            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1580            lowlevel::Command::Execute { name: String::from("TESTOL"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1581        },
1582        highlevel::Command::Testm {
1583            field,
1584        } => {
1585            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1586            for (field_typed_key, field_typed_value) in field {
1587                let field_primitive_key = i64::to_string(&field_typed_key);
1588                let field_primitive_value = field_typed_value.clone();
1589                let field_untyped_pair = lowlevel::Argument::KeyValueArgument { key: field_primitive_key, value: field_primitive_value };
1590                raw_arguments.push(field_untyped_pair);
1591            }   
1592            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1593            lowlevel::Command::Execute { name: String::from("TESTM"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1594        },
1595        highlevel::Command::Testp {
1596            field,
1597        } => {
1598            let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
1599            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
1600            let field_string = i64::to_string(&field);
1601            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1602            raw_arguments_inner.push(field_primitive);
1603            raw_arguments_outer.push(raw_arguments_inner);
1604            let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
1605            lowlevel::Command::Execute { name: String::from("TESTP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1606        },
1607        highlevel::Command::Testpp {
1608            field1,
1609            field2,
1610            field3,
1611        } => {
1612            let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
1613            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
1614            let field1_string = i64::to_string(&field1);
1615            let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
1616            raw_arguments_inner.push(field1_primitive);
1617            raw_arguments_outer.push(raw_arguments_inner);
1618            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
1619            let field2_string = i64::to_string(&field2);
1620            let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
1621            raw_arguments_inner.push(field2_primitive);
1622            let field3_string = field3.clone();
1623            let field3_primitive = lowlevel::Argument::PrimitiveArgument(field3_string);
1624            raw_arguments_inner.push(field3_primitive);
1625            raw_arguments_outer.push(raw_arguments_inner);
1626            let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
1627            lowlevel::Command::Execute { name: String::from("TESTPP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1628        },
1629        highlevel::Command::Testpmpil {
1630            field1,
1631            field2,
1632            field3,
1633        } => {
1634            let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
1635            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
1636            for (field1_typed_key, field1_typed_value) in field1 {
1637                let field1_primitive_key = i64::to_string(&field1_typed_key);
1638                let field1_primitive_value = field1_typed_value.clone();
1639                let field1_untyped_pair = lowlevel::Argument::KeyValueArgument { key: field1_primitive_key, value: field1_primitive_value };
1640                raw_arguments_inner.push(field1_untyped_pair);
1641            }   
1642            raw_arguments_outer.push(raw_arguments_inner);
1643            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
1644            let field2_string = i64::to_string(&field2);
1645            let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
1646            raw_arguments_inner.push(field2_primitive);
1647            for field3_element in field3.into_iter() {
1648                    let field3_element_string = i64::to_string(&field3_element);
1649                    let field3_element_primitive = lowlevel::Argument::PrimitiveArgument(field3_element_string);
1650                    raw_arguments_inner.push(field3_element_primitive);
1651            }   
1652            raw_arguments_outer.push(raw_arguments_inner);
1653            let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
1654            lowlevel::Command::Execute { name: String::from("TESTPMPIL"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1655        },
1656        highlevel::Command::TestrRead {} => {
1657            lowlevel::Command::Read { name: String::from("TESTR"), is_extension: false }
1658        },
1659        highlevel::Command::TestrexRead {} => {
1660            lowlevel::Command::Read { name: String::from("TESTREX"), is_extension: true }
1661        },
1662        highlevel::Command::TesttTest {} => {
1663            lowlevel::Command::Test { name: String::from("TESTT"), is_extension: false }
1664        },
1665        highlevel::Command::TesttexTest {} => {
1666            lowlevel::Command::Test { name: String::from("TESTTEX"), is_extension: true }
1667        },
1668        highlevel::Command::Testenum {
1669            field,
1670        } => {
1671            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1672            let field_string_int = *field as i64;
1673            let field_string = i64::to_string(&field_string_int);
1674            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1675            raw_arguments.push(field_primitive);
1676            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1677            lowlevel::Command::Execute { name: String::from("TESTENUM"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1678        },
1679        highlevel::Command::Testbool {
1680            field,
1681        } => {
1682            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1683            let field_string_int = if *field { 1 } else { 0 };
1684            let field_string = i64::to_string(&field_string_int);
1685            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1686            raw_arguments.push(field_primitive);
1687            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1688            lowlevel::Command::Execute { name: String::from("TESTBOOL"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1689        },
1690        highlevel::Command::Testotherfile {        } => {
1691            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1692            lowlevel::Command::Execute { name: String::from("TESTOTHERFILE"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1693        },
1694        highlevel::Command::Brsf {
1695            features,
1696        } => {
1697            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1698            let features_string = i64::to_string(&features);
1699            let features_primitive = lowlevel::Argument::PrimitiveArgument(features_string);
1700            raw_arguments.push(features_primitive);
1701            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1702            lowlevel::Command::Execute { name: String::from("BRSF"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1703        },
1704        highlevel::Command::CindTest {} => {
1705            lowlevel::Command::Test { name: String::from("CIND"), is_extension: true }
1706        },
1707        highlevel::Command::CindRead {} => {
1708            lowlevel::Command::Read { name: String::from("CIND"), is_extension: true }
1709        },
1710        highlevel::Command::Clcc {        } => {
1711            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1712            lowlevel::Command::Execute { name: String::from("CLCC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1713        },
1714        highlevel::Command::Bcc {        } => {
1715            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1716            lowlevel::Command::Execute { name: String::from("BCC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1717        },
1718        highlevel::Command::Bcs {
1719            codec,
1720        } => {
1721            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1722            let codec_string = i64::to_string(&codec);
1723            let codec_primitive = lowlevel::Argument::PrimitiveArgument(codec_string);
1724            raw_arguments.push(codec_primitive);
1725            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1726            lowlevel::Command::Execute { name: String::from("BCS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1727        },
1728        highlevel::Command::Bac {
1729            codecs,
1730        } => {
1731            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1732            for codecs_element in codecs.into_iter() {
1733                    let codecs_element_string = i64::to_string(&codecs_element);
1734                    let codecs_element_primitive = lowlevel::Argument::PrimitiveArgument(codecs_element_string);
1735                    raw_arguments.push(codecs_element_primitive);
1736            }   
1737            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1738            lowlevel::Command::Execute { name: String::from("BAC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1739        },
1740        highlevel::Command::Bind {
1741            indicators,
1742        } => {
1743            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1744            for indicators_element in indicators.into_iter() {
1745                    let indicators_element_string = i64::to_string(&indicators_element);
1746                    let indicators_element_primitive = lowlevel::Argument::PrimitiveArgument(indicators_element_string);
1747                    raw_arguments.push(indicators_element_primitive);
1748            }   
1749            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1750            lowlevel::Command::Execute { name: String::from("BIND"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1751        },
1752        highlevel::Command::BindTest {} => {
1753            lowlevel::Command::Test { name: String::from("BIND"), is_extension: true }
1754        },
1755        highlevel::Command::BindRead {} => {
1756            lowlevel::Command::Read { name: String::from("BIND"), is_extension: true }
1757        },
1758        highlevel::Command::Biev {
1759            anum,
1760            value,
1761        } => {
1762            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1763            let anum_string_int = *anum as i64;
1764            let anum_string = i64::to_string(&anum_string_int);
1765            let anum_primitive = lowlevel::Argument::PrimitiveArgument(anum_string);
1766            raw_arguments.push(anum_primitive);
1767            let value_string = i64::to_string(&value);
1768            let value_primitive = lowlevel::Argument::PrimitiveArgument(value_string);
1769            raw_arguments.push(value_primitive);
1770            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1771            lowlevel::Command::Execute { name: String::from("BIEV"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1772        },
1773        highlevel::Command::ChldTest {} => {
1774            lowlevel::Command::Test { name: String::from("CHLD"), is_extension: true }
1775        },
1776        highlevel::Command::Cmer {
1777            mode,
1778            keyp,
1779            disp,
1780            ind,
1781        } => {
1782            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1783            let mode_string = i64::to_string(&mode);
1784            let mode_primitive = lowlevel::Argument::PrimitiveArgument(mode_string);
1785            raw_arguments.push(mode_primitive);
1786            let keyp_string = i64::to_string(&keyp);
1787            let keyp_primitive = lowlevel::Argument::PrimitiveArgument(keyp_string);
1788            raw_arguments.push(keyp_primitive);
1789            let disp_string = i64::to_string(&disp);
1790            let disp_primitive = lowlevel::Argument::PrimitiveArgument(disp_string);
1791            raw_arguments.push(disp_primitive);
1792            let ind_string = i64::to_string(&ind);
1793            let ind_primitive = lowlevel::Argument::PrimitiveArgument(ind_string);
1794            raw_arguments.push(ind_primitive);
1795            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1796            lowlevel::Command::Execute { name: String::from("CMER"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1797        },
1798        highlevel::Command::Nrec {
1799            nrec,
1800        } => {
1801            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1802            let nrec_string_int = if *nrec { 1 } else { 0 };
1803            let nrec_string = i64::to_string(&nrec_string_int);
1804            let nrec_primitive = lowlevel::Argument::PrimitiveArgument(nrec_string);
1805            raw_arguments.push(nrec_primitive);
1806            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1807            lowlevel::Command::Execute { name: String::from("NREC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1808        },
1809        highlevel::Command::Cops {
1810            three,
1811            format,
1812        } => {
1813            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1814            let three_string = i64::to_string(&three);
1815            let three_primitive = lowlevel::Argument::PrimitiveArgument(three_string);
1816            raw_arguments.push(three_primitive);
1817            let format_string_int = *format as i64;
1818            let format_string = i64::to_string(&format_string_int);
1819            let format_primitive = lowlevel::Argument::PrimitiveArgument(format_string);
1820            raw_arguments.push(format_primitive);
1821            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1822            lowlevel::Command::Execute { name: String::from("COPS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1823        },
1824        highlevel::Command::CopsRead {} => {
1825            lowlevel::Command::Read { name: String::from("COPS"), is_extension: true }
1826        },
1827        highlevel::Command::Cmee {
1828            enable,
1829        } => {
1830            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1831            let enable_string_int = if *enable { 1 } else { 0 };
1832            let enable_string = i64::to_string(&enable_string_int);
1833            let enable_primitive = lowlevel::Argument::PrimitiveArgument(enable_string);
1834            raw_arguments.push(enable_primitive);
1835            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1836            lowlevel::Command::Execute { name: String::from("CMEE"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1837        },
1838        highlevel::Command::Ccwa {
1839            enable,
1840        } => {
1841            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1842            let enable_string_int = if *enable { 1 } else { 0 };
1843            let enable_string = i64::to_string(&enable_string_int);
1844            let enable_primitive = lowlevel::Argument::PrimitiveArgument(enable_string);
1845            raw_arguments.push(enable_primitive);
1846            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1847            lowlevel::Command::Execute { name: String::from("CCWA"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1848        },
1849        highlevel::Command::Clip {
1850            enable,
1851        } => {
1852            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1853            let enable_string_int = if *enable { 1 } else { 0 };
1854            let enable_string = i64::to_string(&enable_string_int);
1855            let enable_primitive = lowlevel::Argument::PrimitiveArgument(enable_string);
1856            raw_arguments.push(enable_primitive);
1857            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1858            lowlevel::Command::Execute { name: String::from("CLIP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1859        },
1860        highlevel::Command::Cnum {        } => {
1861            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1862            lowlevel::Command::Execute { name: String::from("CNUM"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1863        },
1864        highlevel::Command::Vts {
1865            code,
1866        } => {
1867            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1868            let code_string = code.clone();
1869            let code_primitive = lowlevel::Argument::PrimitiveArgument(code_string);
1870            raw_arguments.push(code_primitive);
1871            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1872            lowlevel::Command::Execute { name: String::from("VTS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1873        },
1874        highlevel::Command::Vgs {
1875            level,
1876        } => {
1877            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1878            let level_string = i64::to_string(&level);
1879            let level_primitive = lowlevel::Argument::PrimitiveArgument(level_string);
1880            raw_arguments.push(level_primitive);
1881            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1882            lowlevel::Command::Execute { name: String::from("VGS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1883        },
1884        highlevel::Command::Vgm {
1885            level,
1886        } => {
1887            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1888            let level_string = i64::to_string(&level);
1889            let level_primitive = lowlevel::Argument::PrimitiveArgument(level_string);
1890            raw_arguments.push(level_primitive);
1891            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1892            lowlevel::Command::Execute { name: String::from("VGM"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1893        },
1894        highlevel::Command::Bia {
1895            indrep,
1896        } => {
1897            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1898            for indrep_element in indrep.into_iter() {
1899                    match indrep_element {
1900                    None => {
1901                                raw_arguments.push(lowlevel::Argument::PrimitiveArgument(String::new()));
1902                        }
1903                        Some(indrep_element_unwrapped) => {
1904                                let indrep_element_unwrapped_string_int = if *indrep_element_unwrapped { 1 } else { 0 };
1905                                let indrep_element_unwrapped_string = i64::to_string(&indrep_element_unwrapped_string_int);
1906                                let indrep_element_primitive = lowlevel::Argument::PrimitiveArgument(indrep_element_unwrapped_string);
1907                                raw_arguments.push(indrep_element_primitive);
1908                        }
1909                    }
1910            }   
1911            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1912            lowlevel::Command::Execute { name: String::from("BIA"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1913        },
1914        highlevel::Command::Answer {        } => {
1915            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1916            lowlevel::Command::Execute { name: String::from("A"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1917        },
1918        highlevel::Command::Chup {        } => {
1919            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1920            lowlevel::Command::Execute { name: String::from("CHUP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1921        },
1922        highlevel::Command::Chld {
1923            command,
1924        } => {
1925            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1926            let command_string = command.clone();
1927            let command_primitive = lowlevel::Argument::PrimitiveArgument(command_string);
1928            raw_arguments.push(command_primitive);
1929            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1930            lowlevel::Command::Execute { name: String::from("CHLD"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from("=")), arguments, terminator: None } }
1931        },
1932        highlevel::Command::AtdNumber {
1933            number,
1934        } => {
1935            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1936            let number_string = number.clone();
1937            let number_primitive = lowlevel::Argument::PrimitiveArgument(number_string);
1938            raw_arguments.push(number_primitive);
1939            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1940            lowlevel::Command::Execute { name: String::from("D"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: Some(String::from(";")) } }
1941        },
1942        highlevel::Command::AtdMemory {
1943            location,
1944        } => {
1945            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1946            let location_string = location.clone();
1947            let location_primitive = lowlevel::Argument::PrimitiveArgument(location_string);
1948            raw_arguments.push(location_primitive);
1949            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1950            lowlevel::Command::Execute { name: String::from("D"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(">")), arguments, terminator: Some(String::from(";")) } }
1951        },
1952        highlevel::Command::Bldn {        } => {
1953            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1954            lowlevel::Command::Execute { name: String::from("BLDN"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1955        },
1956    }
1957}
1958
1959pub fn lower_success(highlevel: &highlevel::Success) -> lowlevel::Response {
1960    match highlevel {
1961        highlevel::Success::Test {        } => {
1962            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1963            lowlevel::Response::Success { name: String::from("TEST"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
1964        },
1965        highlevel::Success::Testnod {        } => {
1966            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1967            lowlevel::Response::Success { name: String::from("TESTNOD"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1968        },
1969        highlevel::Success::TestResponse {        } => {
1970            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1971            lowlevel::Response::Success { name: String::from("TESTN"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
1972        },
1973        highlevel::Success::Testext {        } => {
1974            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1975            lowlevel::Response::Success { name: String::from("TESTEXT"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
1976        },
1977        highlevel::Success::Testextnod {        } => {
1978            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
1979            lowlevel::Response::Success { name: String::from("TESTEXTNOD"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
1980        },
1981        highlevel::Success::Testi {
1982            field,
1983        } => {
1984            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1985            let field_string = i64::to_string(&field);
1986            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1987            raw_arguments.push(field_primitive);
1988            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1989            lowlevel::Response::Success { name: String::from("TESTI"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
1990        },
1991        highlevel::Success::Testinod {
1992            field,
1993        } => {
1994            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
1995            let field_string = i64::to_string(&field);
1996            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
1997            raw_arguments.push(field_primitive);
1998            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
1999            lowlevel::Response::Success { name: String::from("TESTINOD"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
2000        },
2001        highlevel::Success::Testic {
2002            field,
2003        } => {
2004            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2005            let field_string = i64::to_string(&field);
2006            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
2007            raw_arguments.push(field_primitive);
2008            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2009            lowlevel::Response::Success { name: String::from("TESTIC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2010        },
2011        highlevel::Success::Tests {
2012            field,
2013        } => {
2014            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2015            let field_string = field.clone();
2016            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
2017            raw_arguments.push(field_primitive);
2018            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2019            lowlevel::Response::Success { name: String::from("TESTS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2020        },
2021        highlevel::Success::Testsi {
2022            field1,
2023            field2,
2024        } => {
2025            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2026            let field1_string = field1.clone();
2027            let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
2028            raw_arguments.push(field1_primitive);
2029            let field2_string = i64::to_string(&field2);
2030            let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
2031            raw_arguments.push(field2_primitive);
2032            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2033            lowlevel::Response::Success { name: String::from("TESTSI"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2034        },
2035        highlevel::Success::Testsic {
2036            field1,
2037            field2,
2038        } => {
2039            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2040            let field1_string = field1.clone();
2041            let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
2042            raw_arguments.push(field1_primitive);
2043            let field2_string = i64::to_string(&field2);
2044            let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
2045            raw_arguments.push(field2_primitive);
2046            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2047            lowlevel::Response::Success { name: String::from("TESTSIC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2048        },
2049        highlevel::Success::Testio {
2050            field1,
2051            field2,
2052        } => {
2053            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2054            let field1_string = i64::to_string(&field1);
2055            let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
2056            raw_arguments.push(field1_primitive);
2057            match field2 {
2058            None => {
2059                        raw_arguments.push(lowlevel::Argument::PrimitiveArgument(String::new()));
2060                }
2061                Some(field2_unwrapped) => {
2062                        let field2_unwrapped_string = i64::to_string(&field2_unwrapped);
2063                        let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_unwrapped_string);
2064                        raw_arguments.push(field2_primitive);
2065                }
2066            }
2067            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2068            lowlevel::Response::Success { name: String::from("TESTIO"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2069        },
2070        highlevel::Success::Testl {
2071            field,
2072        } => {
2073            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2074            for field_element in field.into_iter() {
2075                    let field_element_string = i64::to_string(&field_element);
2076                    let field_element_primitive = lowlevel::Argument::PrimitiveArgument(field_element_string);
2077                    raw_arguments.push(field_element_primitive);
2078            }   
2079            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2080            lowlevel::Response::Success { name: String::from("TESTL"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2081        },
2082        highlevel::Success::Testol {
2083            field,
2084        } => {
2085            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2086            for field_element in field.into_iter() {
2087                    match field_element {
2088                    None => {
2089                                raw_arguments.push(lowlevel::Argument::PrimitiveArgument(String::new()));
2090                        }
2091                        Some(field_element_unwrapped) => {
2092                                let field_element_unwrapped_string = i64::to_string(&field_element_unwrapped);
2093                                let field_element_primitive = lowlevel::Argument::PrimitiveArgument(field_element_unwrapped_string);
2094                                raw_arguments.push(field_element_primitive);
2095                        }
2096                    }
2097            }   
2098            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2099            lowlevel::Response::Success { name: String::from("TESTOL"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2100        },
2101        highlevel::Success::Testm {
2102            field,
2103        } => {
2104            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2105            for (field_typed_key, field_typed_value) in field {
2106                let field_primitive_key = i64::to_string(&field_typed_key);
2107                let field_primitive_value = field_typed_value.clone();
2108                let field_untyped_pair = lowlevel::Argument::KeyValueArgument { key: field_primitive_key, value: field_primitive_value };
2109                raw_arguments.push(field_untyped_pair);
2110            }   
2111            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2112            lowlevel::Response::Success { name: String::from("TESTM"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2113        },
2114        highlevel::Success::Testp {
2115            field,
2116        } => {
2117            let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
2118            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2119            let field_string = i64::to_string(&field);
2120            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
2121            raw_arguments_inner.push(field_primitive);
2122            raw_arguments_outer.push(raw_arguments_inner);
2123            let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
2124            lowlevel::Response::Success { name: String::from("TESTP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2125        },
2126        highlevel::Success::Testpp {
2127            field1,
2128            field2,
2129            field3,
2130        } => {
2131            let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
2132            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2133            let field1_string = i64::to_string(&field1);
2134            let field1_primitive = lowlevel::Argument::PrimitiveArgument(field1_string);
2135            raw_arguments_inner.push(field1_primitive);
2136            raw_arguments_outer.push(raw_arguments_inner);
2137            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2138            let field2_string = i64::to_string(&field2);
2139            let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
2140            raw_arguments_inner.push(field2_primitive);
2141            let field3_string = field3.clone();
2142            let field3_primitive = lowlevel::Argument::PrimitiveArgument(field3_string);
2143            raw_arguments_inner.push(field3_primitive);
2144            raw_arguments_outer.push(raw_arguments_inner);
2145            let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
2146            lowlevel::Response::Success { name: String::from("TESTPP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2147        },
2148        highlevel::Success::Testpmpil {
2149            field1,
2150            field2,
2151            field3,
2152        } => {
2153            let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
2154            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2155            for (field1_typed_key, field1_typed_value) in field1 {
2156                let field1_primitive_key = i64::to_string(&field1_typed_key);
2157                let field1_primitive_value = field1_typed_value.clone();
2158                let field1_untyped_pair = lowlevel::Argument::KeyValueArgument { key: field1_primitive_key, value: field1_primitive_value };
2159                raw_arguments_inner.push(field1_untyped_pair);
2160            }   
2161            raw_arguments_outer.push(raw_arguments_inner);
2162            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2163            let field2_string = i64::to_string(&field2);
2164            let field2_primitive = lowlevel::Argument::PrimitiveArgument(field2_string);
2165            raw_arguments_inner.push(field2_primitive);
2166            for field3_element in field3.into_iter() {
2167                    let field3_element_string = i64::to_string(&field3_element);
2168                    let field3_element_primitive = lowlevel::Argument::PrimitiveArgument(field3_element_string);
2169                    raw_arguments_inner.push(field3_element_primitive);
2170            }   
2171            raw_arguments_outer.push(raw_arguments_inner);
2172            let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
2173            lowlevel::Response::Success { name: String::from("TESTPMPIL"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2174        },
2175        highlevel::Success::SameOne {
2176            field,
2177        } => {
2178            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2179            let field_string = i64::to_string(&field);
2180            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
2181            raw_arguments.push(field_primitive);
2182            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2183            lowlevel::Response::Success { name: String::from("SAME"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2184        },
2185        highlevel::Success::SameTwo {
2186            field,
2187        } => {
2188            let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
2189            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2190            let field_string = i64::to_string(&field);
2191            let field_primitive = lowlevel::Argument::PrimitiveArgument(field_string);
2192            raw_arguments_inner.push(field_primitive);
2193            raw_arguments_outer.push(raw_arguments_inner);
2194            let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
2195            lowlevel::Response::Success { name: String::from("SAME"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2196        },
2197        highlevel::Success::Brsf {
2198            features,
2199        } => {
2200            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2201            let features_string = i64::to_string(&features);
2202            let features_primitive = lowlevel::Argument::PrimitiveArgument(features_string);
2203            raw_arguments.push(features_primitive);
2204            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2205            lowlevel::Response::Success { name: String::from("BRSF"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2206        },
2207        highlevel::Success::Cind {
2208            service,
2209            call,
2210            callsetup,
2211            callheld,
2212            signal,
2213            roam,
2214            battchg,
2215        } => {
2216            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2217            let service_string_int = if *service { 1 } else { 0 };
2218            let service_string = i64::to_string(&service_string_int);
2219            let service_primitive = lowlevel::Argument::PrimitiveArgument(service_string);
2220            raw_arguments.push(service_primitive);
2221            let call_string_int = if *call { 1 } else { 0 };
2222            let call_string = i64::to_string(&call_string_int);
2223            let call_primitive = lowlevel::Argument::PrimitiveArgument(call_string);
2224            raw_arguments.push(call_primitive);
2225            let callsetup_string = i64::to_string(&callsetup);
2226            let callsetup_primitive = lowlevel::Argument::PrimitiveArgument(callsetup_string);
2227            raw_arguments.push(callsetup_primitive);
2228            let callheld_string = i64::to_string(&callheld);
2229            let callheld_primitive = lowlevel::Argument::PrimitiveArgument(callheld_string);
2230            raw_arguments.push(callheld_primitive);
2231            let signal_string = i64::to_string(&signal);
2232            let signal_primitive = lowlevel::Argument::PrimitiveArgument(signal_string);
2233            raw_arguments.push(signal_primitive);
2234            let roam_string_int = if *roam { 1 } else { 0 };
2235            let roam_string = i64::to_string(&roam_string_int);
2236            let roam_primitive = lowlevel::Argument::PrimitiveArgument(roam_string);
2237            raw_arguments.push(roam_primitive);
2238            let battchg_string = i64::to_string(&battchg);
2239            let battchg_primitive = lowlevel::Argument::PrimitiveArgument(battchg_string);
2240            raw_arguments.push(battchg_primitive);
2241            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2242            lowlevel::Response::Success { name: String::from("CIND"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2243        },
2244        highlevel::Success::Clcc {
2245            index,
2246            dir,
2247            status,
2248            mode,
2249            mpty,
2250            number,
2251            ty,
2252        } => {
2253            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2254            let index_string = i64::to_string(&index);
2255            let index_primitive = lowlevel::Argument::PrimitiveArgument(index_string);
2256            raw_arguments.push(index_primitive);
2257            let dir_string = i64::to_string(&dir);
2258            let dir_primitive = lowlevel::Argument::PrimitiveArgument(dir_string);
2259            raw_arguments.push(dir_primitive);
2260            let status_string = i64::to_string(&status);
2261            let status_primitive = lowlevel::Argument::PrimitiveArgument(status_string);
2262            raw_arguments.push(status_primitive);
2263            let mode_string = i64::to_string(&mode);
2264            let mode_primitive = lowlevel::Argument::PrimitiveArgument(mode_string);
2265            raw_arguments.push(mode_primitive);
2266            let mpty_string = i64::to_string(&mpty);
2267            let mpty_primitive = lowlevel::Argument::PrimitiveArgument(mpty_string);
2268            raw_arguments.push(mpty_primitive);
2269            let number_string = number.clone();
2270            let number_primitive = lowlevel::Argument::PrimitiveArgument(number_string);
2271            raw_arguments.push(number_primitive);
2272            let ty_string = i64::to_string(&ty);
2273            let ty_primitive = lowlevel::Argument::PrimitiveArgument(ty_string);
2274            raw_arguments.push(ty_primitive);
2275            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2276            lowlevel::Response::Success { name: String::from("CLCC"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2277        },
2278        highlevel::Success::Bcs {
2279            codec,
2280        } => {
2281            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2282            let codec_string = i64::to_string(&codec);
2283            let codec_primitive = lowlevel::Argument::PrimitiveArgument(codec_string);
2284            raw_arguments.push(codec_primitive);
2285            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2286            lowlevel::Response::Success { name: String::from("BCS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2287        },
2288        highlevel::Success::BindList {
2289            indicators,
2290        } => {
2291            let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
2292            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2293            for indicators_element in indicators.into_iter() {
2294                    let indicators_element_string_int = *indicators_element as i64;
2295                    let indicators_element_string = i64::to_string(&indicators_element_string_int);
2296                    let indicators_element_primitive = lowlevel::Argument::PrimitiveArgument(indicators_element_string);
2297                    raw_arguments_inner.push(indicators_element_primitive);
2298            }   
2299            raw_arguments_outer.push(raw_arguments_inner);
2300            let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
2301            lowlevel::Response::Success { name: String::from("BIND"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2302        },
2303        highlevel::Success::BindStatus {
2304            anum,
2305            state,
2306        } => {
2307            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2308            let anum_string_int = *anum as i64;
2309            let anum_string = i64::to_string(&anum_string_int);
2310            let anum_primitive = lowlevel::Argument::PrimitiveArgument(anum_string);
2311            raw_arguments.push(anum_primitive);
2312            let state_string_int = if *state { 1 } else { 0 };
2313            let state_string = i64::to_string(&state_string_int);
2314            let state_primitive = lowlevel::Argument::PrimitiveArgument(state_string);
2315            raw_arguments.push(state_primitive);
2316            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2317            lowlevel::Response::Success { name: String::from("BIND"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2318        },
2319        highlevel::Success::Chld {
2320            commands,
2321        } => {
2322            let mut raw_arguments_outer = Vec::<Vec<lowlevel::Argument>>::new();
2323            let mut raw_arguments_inner = Vec::<lowlevel::Argument>::new();
2324            for commands_element in commands.into_iter() {
2325                    let commands_element_string = commands_element.clone();
2326                    let commands_element_primitive = lowlevel::Argument::PrimitiveArgument(commands_element_string);
2327                    raw_arguments_inner.push(commands_element_primitive);
2328            }   
2329            raw_arguments_outer.push(raw_arguments_inner);
2330            let arguments = lowlevel::Arguments::ParenthesisDelimitedArgumentLists(raw_arguments_outer);
2331            lowlevel::Response::Success { name: String::from("CHLD"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2332        },
2333        highlevel::Success::Cops {
2334            format,
2335            zero,
2336            operator,
2337        } => {
2338            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2339            let format_string_int = *format as i64;
2340            let format_string = i64::to_string(&format_string_int);
2341            let format_primitive = lowlevel::Argument::PrimitiveArgument(format_string);
2342            raw_arguments.push(format_primitive);
2343            let zero_string = i64::to_string(&zero);
2344            let zero_primitive = lowlevel::Argument::PrimitiveArgument(zero_string);
2345            raw_arguments.push(zero_primitive);
2346            let operator_string = operator.clone();
2347            let operator_primitive = lowlevel::Argument::PrimitiveArgument(operator_string);
2348            raw_arguments.push(operator_primitive);
2349            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2350            lowlevel::Response::Success { name: String::from("COPS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2351        },
2352        highlevel::Success::Clip {
2353            number,
2354            ty,
2355        } => {
2356            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2357            let number_string = number.clone();
2358            let number_primitive = lowlevel::Argument::PrimitiveArgument(number_string);
2359            raw_arguments.push(number_primitive);
2360            let ty_string = i64::to_string(&ty);
2361            let ty_primitive = lowlevel::Argument::PrimitiveArgument(ty_string);
2362            raw_arguments.push(ty_primitive);
2363            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2364            lowlevel::Response::Success { name: String::from("CLIP"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2365        },
2366        highlevel::Success::Cnum {
2367            alpha,
2368            number,
2369            ty,
2370            speed,
2371            service,
2372        } => {
2373            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2374            let alpha_string = alpha.clone();
2375            let alpha_primitive = lowlevel::Argument::PrimitiveArgument(alpha_string);
2376            raw_arguments.push(alpha_primitive);
2377            let number_string = number.clone();
2378            let number_primitive = lowlevel::Argument::PrimitiveArgument(number_string);
2379            raw_arguments.push(number_primitive);
2380            let ty_string = i64::to_string(&ty);
2381            let ty_primitive = lowlevel::Argument::PrimitiveArgument(ty_string);
2382            raw_arguments.push(ty_primitive);
2383            let speed_string = speed.clone();
2384            let speed_primitive = lowlevel::Argument::PrimitiveArgument(speed_string);
2385            raw_arguments.push(speed_primitive);
2386            let service_string = i64::to_string(&service);
2387            let service_primitive = lowlevel::Argument::PrimitiveArgument(service_string);
2388            raw_arguments.push(service_primitive);
2389            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2390            lowlevel::Response::Success { name: String::from("CNUM"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2391        },
2392        highlevel::Success::Vgs {
2393            level,
2394        } => {
2395            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2396            let level_string = i64::to_string(&level);
2397            let level_primitive = lowlevel::Argument::PrimitiveArgument(level_string);
2398            raw_arguments.push(level_primitive);
2399            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2400            lowlevel::Response::Success { name: String::from("VGS"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2401        },
2402        highlevel::Success::Vgm {
2403            level,
2404        } => {
2405            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2406            let level_string = i64::to_string(&level);
2407            let level_primitive = lowlevel::Argument::PrimitiveArgument(level_string);
2408            raw_arguments.push(level_primitive);
2409            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2410            lowlevel::Response::Success { name: String::from("VGM"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2411        },
2412        highlevel::Success::Ciev {
2413            ind,
2414            value,
2415        } => {
2416            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2417            let ind_string = i64::to_string(&ind);
2418            let ind_primitive = lowlevel::Argument::PrimitiveArgument(ind_string);
2419            raw_arguments.push(ind_primitive);
2420            let value_string = i64::to_string(&value);
2421            let value_primitive = lowlevel::Argument::PrimitiveArgument(value_string);
2422            raw_arguments.push(value_primitive);
2423            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2424            lowlevel::Response::Success { name: String::from("CIEV"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2425        },
2426        highlevel::Success::Ccwa {
2427            number,
2428            ty,
2429        } => {
2430            let mut raw_arguments = Vec::<lowlevel::Argument>::new();
2431            let number_string = number.clone();
2432            let number_primitive = lowlevel::Argument::PrimitiveArgument(number_string);
2433            raw_arguments.push(number_primitive);
2434            let ty_string = i64::to_string(&ty);
2435            let ty_primitive = lowlevel::Argument::PrimitiveArgument(ty_string);
2436            raw_arguments.push(ty_primitive);
2437            let arguments = lowlevel::Arguments::ArgumentList(raw_arguments);
2438            lowlevel::Response::Success { name: String::from("CCWA"), is_extension: true, arguments: lowlevel::DelimitedArguments { delimiter: Some(String::from(":")), arguments, terminator: None } }
2439        },
2440        highlevel::Success::Ring {        } => {
2441            let arguments = lowlevel::Arguments::ArgumentList(Vec::new());
2442            lowlevel::Response::Success { name: String::from("RING"), is_extension: false, arguments: lowlevel::DelimitedArguments { delimiter: None, arguments, terminator: None } }
2443        },
2444    }
2445}
2446