cython
1# mode: run
2
3
4def do_slice(s, int i, int j):
5"""
6>>> do_slice(b'abcdef', 2, 3)
7(b'c', b'cdef', b'ab', b'abcdef', b'cdef', b'ab', b'abcdef')
8>>> do_slice(b'abcdef', 0, 5)
9(b'abcde', b'abcdef', b'', b'abcdef', b'abcdef', b'', b'abcdef')
10"""
11cdef char* ss = s
12return ss[i:j], ss[i:], ss[:i], ss[:], ss[i:None], ss[None:i], ss[None:None]
13