decodeListItem function
Object?
decodeListItem(
- LineCursor cursor,
- int baseDepth,
- String activeDelimiter,
- ResolvedDecodeOptions options,
Decodes a list item
Implementation
Object? decodeListItem(
LineCursor cursor,
int baseDepth,
String activeDelimiter,
ResolvedDecodeOptions options,
) {
final line = cursor.next();
if (line == null) {
throw StateError('Expected list item');
}
final afterHyphen = line.content.substring(listItemPrefix.length);
// Check for array header after hyphen
if (isArrayHeaderAfterHyphen(afterHyphen)) {
final arrayHeader = parseArrayHeaderLine(afterHyphen, defaultDelimiters);
if (arrayHeader != null) {
return decodeArrayFromHeader(arrayHeader.header, arrayHeader.inlineValues,
cursor, baseDepth, options);
}
}
// Check for object first field after hyphen
if (isObjectFirstFieldAfterHyphen(afterHyphen)) {
return decodeObjectFromListItem(line, cursor, baseDepth, options);
}
// Primitive value
return parsePrimitiveToken(afterHyphen);
}