(zelf: &Py<Self>, args: SplitArgs, vm: &VirtualMachine)
| 764 | |
| 765 | #[pymethod] |
| 766 | fn split(zelf: &Py<Self>, args: SplitArgs, vm: &VirtualMachine) -> PyResult<Vec<PyObjectRef>> { |
| 767 | let elements = match zelf.as_str_kind() { |
| 768 | PyKindStr::Ascii(s) => s.py_split( |
| 769 | args, |
| 770 | vm, |
| 771 | || zelf.as_object().to_owned(), |
| 772 | |v, s, vm| { |
| 773 | v.as_bytes() |
| 774 | .split_str(s) |
| 775 | .map(|s| unsafe { AsciiStr::from_ascii_unchecked(s) }.to_pyobject(vm)) |
| 776 | .collect() |
| 777 | }, |
| 778 | |v, s, n, vm| { |
| 779 | v.as_bytes() |
| 780 | .splitn_str(n, s) |
| 781 | .map(|s| unsafe { AsciiStr::from_ascii_unchecked(s) }.to_pyobject(vm)) |
| 782 | .collect() |
| 783 | }, |
| 784 | |v, n, vm| { |
| 785 | v.as_bytes().py_split_whitespace(n, |s| { |
| 786 | unsafe { AsciiStr::from_ascii_unchecked(s) }.to_pyobject(vm) |
| 787 | }) |
| 788 | }, |
| 789 | ), |
| 790 | PyKindStr::Utf8(s) => s.py_split( |
| 791 | args, |
| 792 | vm, |
| 793 | || zelf.as_object().to_owned(), |
| 794 | |v, s, vm| v.split(s).map(|s| vm.ctx.new_str(s).into()).collect(), |
| 795 | |v, s, n, vm| v.splitn(n, s).map(|s| vm.ctx.new_str(s).into()).collect(), |
| 796 | |v, n, vm| v.py_split_whitespace(n, |s| vm.ctx.new_str(s).into()), |
| 797 | ), |
| 798 | PyKindStr::Wtf8(w) => w.py_split( |
| 799 | args, |
| 800 | vm, |
| 801 | || zelf.as_object().to_owned(), |
| 802 | |v, s, vm| v.split(s).map(|s| vm.ctx.new_str(s).into()).collect(), |
| 803 | |v, s, n, vm| v.splitn(n, s).map(|s| vm.ctx.new_str(s).into()).collect(), |
| 804 | |v, n, vm| v.py_split_whitespace(n, |s| vm.ctx.new_str(s).into()), |
| 805 | ), |
| 806 | }?; |
| 807 | Ok(elements) |
| 808 | } |
| 809 | |
| 810 | #[pymethod] |
| 811 | fn rsplit(zelf: &Py<Self>, args: SplitArgs, vm: &VirtualMachine) -> PyResult<Vec<PyObjectRef>> { |
nothing calls this directly
no test coverage detected