from libc.string cimport const_char cdef extern from "" namespace "std": size_t npos = -1 cdef cppclass string: string() nogil except + string(char *) nogil except + string(char *, size_t) nogil except + string(string&) nogil except + # as a string formed by a repetition of character c, n times. string(size_t, char) nogil except + const_char* c_str() nogil const_char* data() nogil size_t size() nogil size_t max_size() nogil size_t length() nogil void resize(size_t) nogil void resize(size_t, char c) nogil size_t capacity() nogil void reserve(size_t) nogil void clear() nogil bint empty() nogil char& at(size_t) nogil char& operator[](size_t) nogil int compare(string&) nogil string& append(string&) nogil string& append(string&, size_t, size_t) nogil string& append(char *) nogil string& append(char *, size_t) nogil string& append(size_t, char) nogil void push_back(char c) nogil string& assign (string&) nogil string& assign (string&, size_t, size_t) nogil string& assign (char *, size_t) nogil string& assign (char *) nogil string& assign (size_t n, char c) nogil string& insert(size_t, string&) nogil string& insert(size_t, string&, size_t, size_t) nogil string& insert(size_t, char* s, size_t) nogil string& insert(size_t, char* s) nogil string& insert(size_t, size_t, char c) nogil size_t copy(char *, size_t, size_t) nogil size_t find(string&) nogil size_t find(string&, size_t) nogil size_t find(char*, size_t pos, size_t) nogil size_t find(char*, size_t pos) nogil size_t find(char, size_t pos) nogil size_t rfind(string&, size_t) nogil size_t rfind(char* s, size_t, size_t) nogil size_t rfind(char*, size_t pos) nogil size_t rfind(char c, size_t) nogil size_t rfind(char c) nogil size_t find_first_of(string&, size_t) nogil size_t find_first_of(char* s, size_t, size_t) nogil size_t find_first_of(char*, size_t pos) nogil size_t find_first_of(char c, size_t) nogil size_t find_first_of(char c) nogil size_t find_first_not_of(string&, size_t) nogil size_t find_first_not_of(char* s, size_t, size_t) nogil size_t find_first_not_of(char*, size_t pos) nogil size_t find_first_not_of(char c, size_t) nogil size_t find_first_not_of(char c) nogil size_t find_last_of(string&, size_t) nogil size_t find_last_of(char* s, size_t, size_t) nogil size_t find_last_of(char*, size_t pos) nogil size_t find_last_of(char c, size_t) nogil size_t find_last_of(char c) nogil size_t find_last_not_of(string&, size_t) nogil size_t find_last_not_of(char* s, size_t, size_t) nogil size_t find_last_not_of(char*, size_t pos) nogil string substr(size_t, size_t) nogil string substr() nogil string substr(size_t) nogil size_t find_last_not_of(char c, size_t) nogil size_t find_last_not_of(char c) nogil #string& operator= (string&) #string& operator= (char*) #string& operator= (char) string operator+ (string& rhs) nogil string operator+ (char* rhs) nogil bint operator==(string&) nogil bint operator==(char*) nogil bint operator!= (string& rhs ) nogil bint operator!= (char* ) nogil bint operator< (string&) nogil bint operator< (char*) nogil bint operator> (string&) nogil bint operator> (char*) nogil bint operator<= (string&) nogil bint operator<= (char*) nogil bint operator>= (string&) nogil bint operator>= (char*) nogil