docs: def weld_str_slice(array, start=None, stop=None, step=None):
      """Slice each element.
  
      Parameters
      ----------
      array : numpy.ndarray or WeldObject
          Input data.
      start : int, optional
      stop : int, optional
      step : int, optional
  
      Returns
      -------
      WeldObject
          Representation of this computation.
  
      """
      obj_id, weld_obj = create_weld_object(array)
      start = _prepare_slice(start, '0L')
      stop = _prepare_slice(stop, 'lenString')
      step = _prepare_slice(step, '1L')
  
      weld_template = """map(
      {array},
      |e: vec[i8]|
          let lenString = len(e);
          let stop = if({stop} > lenString, lenString, {stop});
          result(
              for(iter(e, {start}, stop, {step}),
                  appender[i8],
                  |c: appender[i8], j: i64, f: i8| 
                      merge(c, f)
              )
          ) 
  )"""
  
      weld_obj.weld_code = weld_template.format(array=obj_id,
                                                start=start,
                                                stop=stop,
                                                step=step)
  
      return weld_obj