parseStructTypeArgs static method

List parseStructTypeArgs(
  1. String str, [
  2. bool normalizeAddress = false
])

Implementation

static List<TypeTag> parseStructTypeArgs(String str, [bool normalizeAddress = false]) {
  // split `str` by all `,` outside angle brackets
  List<String> tok = [];
  var word = '';
  var nestedAngleBrackets = 0;
  for (var i = 0; i < str.length; i++) {
    final char = str[i];
    if (char == '<') {
      nestedAngleBrackets++;
    }
    if (char == '>') {
      nestedAngleBrackets--;
    }
    if (nestedAngleBrackets == 0 && char == ',') {
      tok.add(word.trim());
      word = '';
      continue;
    }
    word += char;
  }

  tok.add(word.trim());

  return tok.map((tok) =>
    TypeTagSerializer.parseFromStr(tok, normalizeAddress),
  ).toList();
}