(&mut self)
| 881 | } |
| 882 | |
| 883 | fn parse_array(&mut self) -> Option<String> { |
| 884 | self.expect('[')?; |
| 885 | self.skip_ws(); |
| 886 | let mut values = Vec::new(); |
| 887 | if self.peek() == Some(']') { |
| 888 | self.pos += 1; |
| 889 | return Some("[]".to_string()); |
| 890 | } |
| 891 | |
| 892 | loop { |
| 893 | let value = self.parse_value()?; |
| 894 | values.push(value); |
| 895 | self.skip_ws(); |
| 896 | match self.peek()? { |
| 897 | ',' => { |
| 898 | self.pos += 1; |
| 899 | } |
| 900 | ']' => { |
| 901 | self.pos += 1; |
| 902 | break; |
| 903 | } |
| 904 | _ => return None, |
| 905 | } |
| 906 | } |
| 907 | |
| 908 | Some(format!("[{}]", values.join(","))) |
| 909 | } |
| 910 | |
| 911 | fn parse_quoted_string(&mut self) -> Option<String> { |
| 912 | let quote = self.next()?; |
no test coverage detected