def line_iter(xo: int, yo: int, xd: int, yd: int) -> Iterator[Tuple[int, int]]:
    """ 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.
    """
    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])
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.