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

type PyByteArrayObject

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

PyTypeObject PyByteArray_Type
    * 次に属します: Stable ABI.*

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


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

int PyByteArray_Check(PyObject *o)

   オブジェクト *o* が bytearray オブジェクトか bytearray 型のサブタイ
   プのインスタンスである場合に真を返します。この関数は常に成功します
   。

int PyByteArray_CheckExact(PyObject *o)

   オブジェクト *o* が bytearray オブジェクトだが bytearray 型のサブタ
   イプのインスタンスでない場合に真を返します。この関数は常に成功しま
   す。


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

PyObject *PyByteArray_FromObject(PyObject *o)
    *戻り値: 新しい参照。** 次に属します: Stable ABI.*

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

PyObject *PyByteArray_FromStringAndSize(const char *string, Py_ssize_t len)
    *戻り値: 新しい参照。** 次に属します: Stable ABI.*

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

PyObject *PyByteArray_Concat(PyObject *a, PyObject *b)
    *戻り値: 新しい参照。** 次に属します: Stable ABI.*

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

Py_ssize_t PyByteArray_Size(PyObject *bytearray)
    * 次に属します: Stable ABI.*

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

char *PyByteArray_AsString(PyObject *bytearray)
    * 次に属します: Stable ABI.*

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

int PyByteArray_Resize(PyObject *bytearray, Py_ssize_t len)
    * 次に属します: Stable ABI.*

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


マクロ
======

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

char *PyByteArray_AS_STRING(PyObject *bytearray)

   "PyByteArray_AsString()" に似ていますが、エラーチェックを行いません
   。

Py_ssize_t PyByteArray_GET_SIZE(PyObject *bytearray)

   "PyByteArray_Size()" に似ていますが、エラーチェックを行いません。
