#include "common.h"
namespace {
py::str StringToPyStr(const SkString& string) {
return py::str(string.c_str(), string.size());
}
} // namespace
void initString(py::module &m) {
py::class_(m, "String")
.def("__repr__", &StringToPyStr)
.def("__str__", &StringToPyStr)
.def(py::init())
.def(py::init(), py::arg("size"))
.def(py::init(
[] (py::str str) {
py::ssize_t length = 0;
auto buffer = PyUnicode_AsUTF8AndSize(str.ptr(), &length);
if (!buffer)
throw py::value_error("Failed to get UTF-8 str.");
return SkString(buffer, length);
}),
py::arg("text"))
.def(py::init(), py::arg("text"))
.def(py::init(), py::arg("text"), py::arg("size"))
.def(py::init(), py::arg("other"))
.def("isEmpty", &SkString::isEmpty)
.def("size", &SkString::size)
.def("c_str", &SkString::c_str)
.def("__getitem__",
[] (const SkString& self, size_t index) {
if (index < 0 || self.size()