MCPcopy Create free account
hub / github.com/dprint/jsonc-parser / parse_array

Function parse_array

src/parse_to_value.rs:85–111  ·  view source on GitHub ↗
(parser: &mut JsoncParser<'a>)

Source from the content-addressed store, hash-verified

83}
84
85fn parse_array<'a>(parser: &mut JsoncParser<'a>) -> Result<JsonValue<'a>, ParseError> {
86 parser.enter_container()?;
87 let mut elements = Vec::new();
88
89 let mut token = parser.scan()?;
90
91 loop {
92 match token {
93 Some(Token::CloseBracket) => break,
94 None => {
95 parser.exit_container();
96 return Err(
97 parser
98 .scanner
99 .create_error_for_current_token(ParseErrorKind::UnterminatedArray),
100 );
101 }
102 Some(value_token) => {
103 elements.push(parse_value(parser, value_token)?);
104 }
105 }
106 token = parser.scan_array_comma()?;
107 }
108
109 parser.exit_container();
110 Ok(JsonValue::Array(JsonArray::new(elements)))
111}
112
113#[cfg(test)]
114mod tests {

Callers 1

parse_valueFunction · 0.70

Calls 7

ArrayClass · 0.85
enter_containerMethod · 0.80
exit_containerMethod · 0.80
scan_array_commaMethod · 0.80
parse_valueFunction · 0.70
scanMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…