code: def line_iter(xo: int, yo: int, xd: int, yd: int) -> Iterator[Tuple[int, int]]:
      
      data = ffi.new("TCOD_bresenham_data_t *")
      lib.TCOD_line_init_mt(xo, yo, xd, yd, data)
      x = ffi.new("int *")
      y = ffi.new("int *")
      yield xo, yo
      while not lib.TCOD_line_step_mt(x, y, data):
          yield (x[0], y[0])
docs: returns an Iterable
  
      This Iterable does not include the origin point.
  
      Args:
          xo (int): X starting point.
          yo (int): Y starting point.
          xd (int): X destination point.
          yd (int): Y destination point.
  
      Returns:
          Iterable[Tuple[int,int]]: An Iterable of (x,y) points.