code: def weld_arrays_to_vec_of_struct(arrays, weld_types):
      
      weld_obj = create_empty_weld_object()
      obj_ids = [get_weld_obj_id(weld_obj, array) for array in arrays]
  
      arrays = 'zip({})'.format(', '.join(obj_ids)) if len(obj_ids) > 1 else '{}'.format(obj_ids[0])
      input_types = struct_of('{e}', weld_types) if len(obj_ids) > 1 else '{}'.format(weld_types[0])
      res_types = struct_of('{e}', weld_types)
      to_merge = 'e' if len(obj_ids) > 1 else '{e}'
  
      weld_template = """result(
      for({arrays},
          appender[{res_types}],
          |b: appender[{res_types}], i: i64, e: {input_types}|
              merge(b, {to_merge})
      )    
  )"""
  
      weld_obj.weld_code = weld_template.format(arrays=arrays,
                                                input_types=input_types,
                                                res_types=res_types,
                                                to_merge=to_merge)
  
      return weld_obj
docs: Create a vector of structs from multiple vectors.
  
      Parameters
      ----------
      arrays : list of (numpy.ndarray or WeldObject)
          Arrays to put in a struct.
      weld_types : list of WeldType
          The Weld types of the arrays in the same order.
  
      Returns
      -------
      WeldObject
          Representation of this computation.