mirror of https://github.com/python/cpython
48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
#ifndef Py_INTERNAL_BYTESOBJECT_H
|
|
#define Py_INTERNAL_BYTESOBJECT_H
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef Py_BUILD_CORE
|
|
# error "this header requires Py_BUILD_CORE define"
|
|
#endif
|
|
|
|
|
|
/* Substring Search.
|
|
|
|
Returns the index of the first occurrence of
|
|
a substring ("needle") in a larger text ("haystack").
|
|
If the needle is not found, return -1.
|
|
If the needle is found, add offset to the index.
|
|
*/
|
|
|
|
PyAPI_FUNC(Py_ssize_t)
|
|
_PyBytes_Find(const char *haystack, Py_ssize_t len_haystack,
|
|
const char *needle, Py_ssize_t len_needle,
|
|
Py_ssize_t offset);
|
|
|
|
/* Same as above, but search right-to-left */
|
|
PyAPI_FUNC(Py_ssize_t)
|
|
_PyBytes_ReverseFind(const char *haystack, Py_ssize_t len_haystack,
|
|
const char *needle, Py_ssize_t len_needle,
|
|
Py_ssize_t offset);
|
|
|
|
|
|
/** Helper function to implement the repeat and inplace repeat methods on a buffer
|
|
*
|
|
* len_dest is assumed to be an integer multiple of len_src.
|
|
* If src equals dest, then assume the operation is inplace.
|
|
*
|
|
* This method repeately doubles the number of bytes copied to reduce
|
|
* the number of invocations of memcpy.
|
|
*/
|
|
PyAPI_FUNC(void)
|
|
_PyBytes_Repeat(char* dest, Py_ssize_t len_dest,
|
|
const char* src, Py_ssize_t len_src);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* !Py_INTERNAL_BYTESOBJECT_H */
|