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