[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/skia-python/skia-python/main/src/skia/String.cpp [Back]  [Original]

#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() 

Web Proxy Viewer  |  New URL  |  Original Page