code: def _merge_struct(lhs, rhs, type_):
      
      fields = type_.struct_type.fields
      lhs, rhs = list(lhs.list_value.values), list(rhs.list_value.values)
      candidate_type = fields[len(lhs) - 1].type
      first = rhs.pop(0)
      if first.HasField("null_value") or candidate_type.code in _UNMERGEABLE_TYPES:
          lhs.append(first)
      else:
          last = lhs.pop()
          lhs.append(_merge_by_type(last, first, candidate_type))
      return Value(list_value=ListValue(values=lhs + rhs))
docs: Helper for '_merge_by_type'.