bytearray オブジェクト
**********************

PyByteArrayObject

   この "PyObject" のサブタイプは Python の bytearray オブジェクトを表
   します。

PyTypeObject PyByteArray_Type

   この "PyTypeObject" のインスタンスは、 Python bytearray 型を示しま
   す。 Python レイヤでの "bytearray" と同じオブジェクトです。


型チェックマクロ
================

int PyByteArray_Check(PyObject *o)

   *o* が bytearray かそのサブタイプのインスタンスだった場合に真を返し
   ます。

int PyByteArray_CheckExact(PyObject *o)

   *o* が bytearray オブジェクトで、そのサブタイプのインスタンスでは無
   いときに、真を返します。


ダイレクト API 関数
===================

PyObject* PyByteArray_FromObject(PyObject *o)
    *Return value: New reference.*

   buffer protocol を実装した任意のオブジェクト *o* から、新しい
   bytearrayオブジェクトを作成し、返します。

PyObject* PyByteArray_FromStringAndSize(const char *string, Py_ssize_t len)
    *Return value: New reference.*

   *string* とその長さ *len* から新しい bytearray オブジェクトを返しま
   す。失敗した場合は "NULL" を返します。

PyObject* PyByteArray_Concat(PyObject *a, PyObject *b)
    *Return value: New reference.*

   bytearray *a* と *b* を連結した結果を新しい bytearray として返しま
   す。

Py_ssize_t PyByteArray_Size(PyObject *bytearray)

   "NULL" ポインタチェックの後に *bytearray* のサイズを返します。

char* PyByteArray_AsString(PyObject *bytearray)

   "NULL" ポインタチェックの後に *bytearray* の内容を char 配列として
   返します。 返される配列には、常に余分な null バイトが追加されます。

int PyByteArray_Resize(PyObject *bytearray, Py_ssize_t len)

   *bytearray* の内部バッファを *len* へリサイズします。


マクロ
======

以下のマクロは、ポインタのチェックをしないことにより安全性を犠牲にして
スピードを優先しています。

char* PyByteArray_AS_STRING(PyObject *bytearray)

   "PyByteArray_AsString()" のマクロバージョン。

Py_ssize_t PyByteArray_GET_SIZE(PyObject *bytearray)

   "PyByteArray_Size()" のマクロバージョン。
