pub trait IterNext: PyPayload + Iterable {
// Required method
fn next(zelf: &Py<Self>, vm: &VirtualMachine) -> PyResult<PyIterReturn>;
// Provided methods
fn slot_iternext(
zelf: &PyObject,
vm: &VirtualMachine
) -> PyResult<PyIterReturn> { ... }
fn __next__(zelf: PyObjectRef, vm: &VirtualMachine) -> PyResult { ... }
fn __extend_method_def(method_defs: &mut Vec<PyMethodDef>) { ... }
fn __extend_py_class(ctx: &Context, class: &'static Py<PyType>) { ... }
fn __extend_slots(slots: &mut PyTypeSlots) { ... }
}