parseId1Command function
Implementation
Id1Command parseId1Command(Uint8List data) {
var cmdLineEnd = data.indexOf("\n".codeUnits.first);
if (cmdLineEnd < 0) {
cmdLineEnd = data.length;
}
var cmdLine = data.getRange(0, cmdLineEnd);
Uint8List cmdData =
data.length > cmdLineEnd
? Uint8List.fromList(data.getRange(cmdLineEnd + 1, data.length).toList())
: Uint8List.fromList([]);
var uri = Uri.parse(String.fromCharCodes(cmdLine));
var op = Op.values.firstWhere((e) => e.toString() == "Op.${uri.scheme}");
var key = Uri.decodeComponent(uri.path);
if (key.startsWith("/")) key = key.substring(1);
Map<String, String> args = uri.queryParameters;
var cmd = Id1Command(op: op, key: Id1Key(key), args: args, data: cmdData);
return cmd;
}