decodeValue method

  1. @override
List decodeValue(
  1. Pipe x,
  2. CType t
)
override

Implementation

@override
decodeValue(Pipe x, CType t) {
  final tuple = checkType(t);
  if ((tuple is! TupleClass)) {
    throw 'not a tuple type';
  }
  if (tuple._components.length < _components.length) {
    throw 'tuple mismatch';
  }
  var res = [];
  for (var entry in tuple._components.asMap().entries) {
    //[i, wireType]
    var i = entry.key;
    var wireType = entry.value;

    if (i >= _components.length) {
      // skip value
      wireType.decodeValue(x, wireType);
    } else {
      res.add(_components[i].decodeValue(x, wireType));
    }
  }
  return res;
}