17db96d56Sopenharmony_ci.. highlight:: c
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ci.. _bytearrayobjects:
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ciByte Array Objects
67db96d56Sopenharmony_ci------------------
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_ci.. index:: pair: object; bytearray
97db96d56Sopenharmony_ci
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ci.. c:type:: PyByteArrayObject
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ci   This subtype of :c:type:`PyObject` represents a Python bytearray object.
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ci
167db96d56Sopenharmony_ci.. c:var:: PyTypeObject PyByteArray_Type
177db96d56Sopenharmony_ci
187db96d56Sopenharmony_ci   This instance of :c:type:`PyTypeObject` represents the Python bytearray type;
197db96d56Sopenharmony_ci   it is the same object as :class:`bytearray` in the Python layer.
207db96d56Sopenharmony_ci
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ciType check macros
237db96d56Sopenharmony_ci^^^^^^^^^^^^^^^^^
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci.. c:function:: int PyByteArray_Check(PyObject *o)
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ci   Return true if the object *o* is a bytearray object or an instance of a
287db96d56Sopenharmony_ci   subtype of the bytearray type.  This function always succeeds.
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci
317db96d56Sopenharmony_ci.. c:function:: int PyByteArray_CheckExact(PyObject *o)
327db96d56Sopenharmony_ci
337db96d56Sopenharmony_ci   Return true if the object *o* is a bytearray object, but not an instance of a
347db96d56Sopenharmony_ci   subtype of the bytearray type.  This function always succeeds.
357db96d56Sopenharmony_ci
367db96d56Sopenharmony_ci
377db96d56Sopenharmony_ciDirect API functions
387db96d56Sopenharmony_ci^^^^^^^^^^^^^^^^^^^^
397db96d56Sopenharmony_ci
407db96d56Sopenharmony_ci.. c:function:: PyObject* PyByteArray_FromObject(PyObject *o)
417db96d56Sopenharmony_ci
427db96d56Sopenharmony_ci   Return a new bytearray object from any object, *o*, that implements the
437db96d56Sopenharmony_ci   :ref:`buffer protocol <bufferobjects>`.
447db96d56Sopenharmony_ci
457db96d56Sopenharmony_ci
467db96d56Sopenharmony_ci.. c:function:: PyObject* PyByteArray_FromStringAndSize(const char *string, Py_ssize_t len)
477db96d56Sopenharmony_ci
487db96d56Sopenharmony_ci   Create a new bytearray object from *string* and its length, *len*.  On
497db96d56Sopenharmony_ci   failure, ``NULL`` is returned.
507db96d56Sopenharmony_ci
517db96d56Sopenharmony_ci
527db96d56Sopenharmony_ci.. c:function:: PyObject* PyByteArray_Concat(PyObject *a, PyObject *b)
537db96d56Sopenharmony_ci
547db96d56Sopenharmony_ci   Concat bytearrays *a* and *b* and return a new bytearray with the result.
557db96d56Sopenharmony_ci
567db96d56Sopenharmony_ci
577db96d56Sopenharmony_ci.. c:function:: Py_ssize_t PyByteArray_Size(PyObject *bytearray)
587db96d56Sopenharmony_ci
597db96d56Sopenharmony_ci   Return the size of *bytearray* after checking for a ``NULL`` pointer.
607db96d56Sopenharmony_ci
617db96d56Sopenharmony_ci
627db96d56Sopenharmony_ci.. c:function:: char* PyByteArray_AsString(PyObject *bytearray)
637db96d56Sopenharmony_ci
647db96d56Sopenharmony_ci   Return the contents of *bytearray* as a char array after checking for a
657db96d56Sopenharmony_ci   ``NULL`` pointer.  The returned array always has an extra
667db96d56Sopenharmony_ci   null byte appended.
677db96d56Sopenharmony_ci
687db96d56Sopenharmony_ci
697db96d56Sopenharmony_ci.. c:function:: int PyByteArray_Resize(PyObject *bytearray, Py_ssize_t len)
707db96d56Sopenharmony_ci
717db96d56Sopenharmony_ci   Resize the internal buffer of *bytearray* to *len*.
727db96d56Sopenharmony_ci
737db96d56Sopenharmony_ciMacros
747db96d56Sopenharmony_ci^^^^^^
757db96d56Sopenharmony_ci
767db96d56Sopenharmony_ciThese macros trade safety for speed and they don't check pointers.
777db96d56Sopenharmony_ci
787db96d56Sopenharmony_ci.. c:function:: char* PyByteArray_AS_STRING(PyObject *bytearray)
797db96d56Sopenharmony_ci
807db96d56Sopenharmony_ci   Similar to :c:func:`PyByteArray_AsString`, but without error checking.
817db96d56Sopenharmony_ci
827db96d56Sopenharmony_ci
837db96d56Sopenharmony_ci.. c:function:: Py_ssize_t PyByteArray_GET_SIZE(PyObject *bytearray)
847db96d56Sopenharmony_ci
857db96d56Sopenharmony_ci   Similar to :c:func:`PyByteArray_Size`, but without error checking.
86