elementAt<T extends CborObject<Object?>?> method

T elementAt<T extends CborObject<Object?>?>(
  1. int index, {
  2. String? name,
})

Implementation

T elementAt<T extends CborObject?>(int index, {String? name}) {
  if (index >= value.length) {
    if (null is T) return null as T;

    throw CborSerializationException(
      'Missing ${name ?? "element"} at index $index.',
      details: {'length': value.length, 'index': index, 'expected': '$T'},
    );
  }

  final element = value.elementAt(index);
  if (element is CborNullValue && null is T) {
    return null as T;
  }
  if (element is T) {
    return element;
  }
  throw CborSerializationException(
    "Failed to convert CBOR object at index $index${name != null ? ' for "$name"' : ''} to $T",
    details: {'expected': '$T', 'type': runtimeType.toString()},
  );
}